Laravel 策略总是拒绝访问

我注册了保单


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 ,它什么也没显示。但是我应该如何在这里绑定模型?有任何想法吗?


料青山看我应如是
浏览 152回答 1
1回答

眼眸繁星

您在调用操作“viewAny”时没有为授权方法指定相关模型,所以您需要做的是:$this->authorize('viewAny',Grade::class);或直接将其添加到中间件并从您的控制器中删除授权调用Route::get('/grades','GradesController@showGrades')->middleware('can:viewAny,App\Grade');
打开App,查看更多内容
随时随地看视频慕课网APP