有什么方法可以在门定义中定义控制器?

时间:2019-08-19 13:29:13

标签: laravel laravel-authorization

我正在建立一个新项目,我想使用关卡和政策。我知道Laravel文档中如何使用它,但我想进一步介绍。

我们在AuthServiceProvider中有一个引导方法,我们应该在其中定义门和策略。

我们可以在门口定义控制器吗?

Gate::define(SomeController::class, function ($user) {
   if($user->something) {
     return false;
   }
   return true;
});

1 个答案:

答案 0 :(得分:0)

如果您想保护特定的路由(防止未经授权的用户访问您的控制器),中间件是您的最佳选择。盖茨/政策在那里可以保护模型/动作。

<?php

namespace App\Http\Middleware;

use Closure;

class MyCustomMiddleware
{
    public function handle($request, Closure $next)
    {
        if($request->user->something) {
            return false;
       }

       return true;
    }
}

有关如何在此处创建和注册中间件的更多详细信息:

https://laravel.com/docs/5.8/middleware