我有2个中间件。StaffMiddleware和AdminMiddleware Laravel 5.3
我StaffMiddleware
public function handle($request, Closure $next)
{
if($request->user()->role->name != 'staff'){
return redirect()->route('store');
}
return $next($request);
}
我AdminMiddleware
public function handle($request, Closure $next)
{
if($request->user()->role->name != 'admin'){
return redirect()->route('store');
}
return $next($request);
}
问题是我的UnitController
public function __construct(UnitInterface $unit){
$this->middleware('staff');
$this->middleware('admin);
$this->unit = $unit;
}
它应该工作无论是角色是工作人员或管理员。我是否需要创建另一个中间件来将它们组合在一起?
是的,我知道,我们可以实现 “admin或员工”?如果它具有管理员或员工的角色,那么没有其他问题重定向。 – Rbex
@Rbex,我已经更新了我的答案,以显示如何使用参数使您的中间件更加灵活。这需要对中间件进行更改,但只需要一个中间件,而不是角色的各种组合。 – Devon
这就是我正在寻找的......竖起大拇指! – Rbex