我注册了保单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');
- 1 回答
- 0 关注
- 151 浏览
添加回答
举报
0/150
提交
取消