我正在建立一个新项目,我想使用关卡和政策。我知道Laravel文档中如何使用它,但我想进一步介绍。
我们在AuthServiceProvider中有一个引导方法,我们应该在其中定义门和策略。
我们可以在门口定义控制器吗?
Gate::define(SomeController::class, function ($user) {
if($user->something) {
return false;
}
return true;
});
答案 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;
}
}
有关如何在此处创建和注册中间件的更多详细信息: