首页 > 解决方案 > Laravel 中间件分配多个角色不起作用

问题描述

大家好,我的工作遇到了麻烦。我尝试了很多次将两个角色放在路由中以确保这些角色将被授予访问特定页面的权限,但我的另一个角色是员工仍然可以访问它。你们有什么意见吗?帮助!

Route::get('/dashboard', [
  'as' => 'admin',
  'uses' => 'DashboardController@index',
  'middleware' => ['roles:Staff,Owner','auth']

标签: laravelmiddlewareroles

解决方案


您需要handle()在中间件中为您的函数添加更多参数。

在你的角色中间件 -

public function handle($request, Closure $next, $role1, $role2)
{
  $role1 //Staff
  $role2 //Owner
}

如果您使用的是 PHP 7 -

public function handle($request, Closure $next, ...$role)
{
  $role //[Staff, Owner]
}

推荐阅读