拥有一堆路由并拥有简单的权限系统,因此如果管理员提出请求他/她可以在没有任何其他条件的情况下访问任何路由,那么我会检查用户是否是管理员,如果是,我和#39; ll跳过所有下一个中间件:
class IsAdmin
{
public function handle($request, Closure $next)
{
if (\Auth::user() && (\Auth::user()->group->name == 'admin')) {
// skip next middlewares and give access for the route to the user
}
return $next($request);
}
}
只有skip
部分存在问题,有没有办法这样做?
答案 0 :(得分:0)
另一种解决方案是将其添加到控制器构造函数中。
public function __construct()
{
if (\Auth::user() && (\Auth::user()->group->name == 'admin')) {
$this->middleware('auth', ['except' => ['yourControllerMethod', 'anotherControllerMethod']]);
}
}