为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel 策略总是拒绝访问

Laravel 策略总是拒绝访问

PHP
料青山看我应如是 2022-01-08 17:47:00
我注册了保单protected $policies = [         'App\Grade' => 'App\Policies\GradesPolicy'    ];这是我获取此资源的路线:Route::get('/grades', 'GradesController@showGrades');控制器方法public function showGrades()    {        $this->authorize('viewAny');        switch(Auth::user()->role)        {            case 'teacher':               return view('teacher');            break;            case 'parent':              return view('parent');            break;            default:             abort(400);            break;        }    }及政策方法public function viewAny(User $user)    {         return $user->check();    }是的,我知道这里有相关主题。我读了他们。我知道这与模型绑定有关。viewAny 方法永远不会被调用。我在里面使用了 dd ,它什么也没显示。但是我应该如何在这里绑定模型?有任何想法吗?
查看完整描述

1 回答

?
眼眸繁星

TA贡献1873条经验 获得超9个赞

您在调用操作“viewAny”时没有为授权方法指定相关模型,所以您需要做的是:


$this->authorize('viewAny',Grade::class);

或直接将其添加到中间件并从您的控制器中删除授权调用


Route::get('/grades','GradesController@showGrades')

->middleware('can:viewAny,App\Grade');


查看完整回答
反对 回复 2022-01-08
  • 1 回答
  • 0 关注
  • 151 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信