Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 5 laravel以管理员身份批准和不批准用户的请求_Laravel 5 - Fatal编程技术网

Laravel 5 laravel以管理员身份批准和不批准用户的请求

Laravel 5 laravel以管理员身份批准和不批准用户的请求,laravel-5,Laravel 5,我正在开发一个应用程序,其中用户发送一个应用程序给管理员谁批准或不批准。。。用于存储此数据的字段有一个布尔值0,表示已接受1,表示已拒绝,,,n顺便说一句,我在laravel中是新的,因此这可能是一个错误的方法。。。是否有人可以使用按钮将数据库中的值从0更改为1(接受时),从1更改为0(拒绝时)。。。av一直在寻找这一点,但找不到一个好的方法来做到这一点。。。好心协助 这是我的应用程序模型 //关联应用程序id和管理员id 公共功能批准应用程序() { 返回$this->belongtoma

我正在开发一个应用程序,其中用户发送一个应用程序给管理员谁批准或不批准。。。用于存储此数据的字段有一个布尔值0,表示已接受1,表示已拒绝,,,n顺便说一句,我在laravel中是新的,因此这可能是一个错误的方法。。。是否有人可以使用按钮将数据库中的值从0更改为1(接受时),从1更改为0(拒绝时)。。。av一直在寻找这一点,但找不到一个好的方法来做到这一点。。。好心协助

这是我的应用程序模型

//关联应用程序id和管理员id
公共功能批准应用程序()
{
返回$this->belongtomany('Martin\Models\Application','applications','Application\u id','admin\u id');
}
public function approved()//返回所有已批准的应用程序
{
返回$this->approveApplications()->wherePivot('approved',true)->get();

}
您将问题过度复杂化了:) 最好的方法是将两个单独的路由添加到路由文件中:

Route::post('application/approve/{id}', 'YourController@postApprove');
Route::post('application/reject/{id}', 'YourController@postReject');
现在,您将把“批准”和“拒绝”按钮链接到上面的路由,您需要确保表单按钮链接到这两个路由,并发送要批准/拒绝的应用程序的ID。 在控制器中,您将修改应用程序“已批准”字段->例如:

public function postApprove($id) {
    $application = Application::where('id', '=', e($id))->first();
    if($application)
    {
        $application->approved = 1;
        $application->save();
        //return a view or whatever you want tto do after
    }
}

对拒绝方法执行类似的操作,除非您将“approved”字段设置为false或0。

我很高兴您回复@Vojko我只是想知道为什么要使用post路由而不是get路由。。那么为什么要用e($id)而不是id。。。我知道这可能不太好问,我道歉。。。我实际上使用这种方法,但av将布尔值改为整数,这样当用户报价被拒绝时,它将存储为2而不是1。。。这是gud方法吗。。。再次感谢回复…使用post,因为用户将数据发布到服务器,而不是从服务器获取数据。对于此特定问题,您还可以使用Get。。。但是要注意,Get方法更容易被篡改,人们可能会在不访问您的网站的情况下猜到链接(请阅读谷歌CSRF提供的有关伪造请求的更多信息)。e($id)用于转义字符,例如,如果有人篡改发送到服务器的数据,以防止有害数据。这是数据清理。至于integer,只要你不迷失在你正在使用的东西上,就可以使用任何适合你的东西。我更喜欢真/假组合。如果答案帮助你解决了问题,请标记为答案:)Hello@Vojko仍在处理它,但当我单击按钮时,他们给出了方法不允许的错误。这也是在按钮
{route('approvedApplications',['id'=>$application->id])中写入路由的正确方法吗
当我使用get时,它会调用undefined方法illumb\Database\Query\Builder::save()。。。当我删除save()方法时,它会发出一条flash消息,表明应用程序已被批准,但在数据库中什么也没有发生。我该怎么办?如果您能给我答复,我将不胜感激……`公共函数postprove($id){$application=application::where('id','=',$id);if($application){$application->approved=1;return redirect()->back()->with('info','application was approved successfully');}}}保存以备postReject。谢谢