我注冊了保單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 關注
- 177 瀏覽
添加回答
舉報
0/150
提交
取消