【发布时间】:2018-07-03 10:06:02
【问题描述】:
我正在开发一个 Laravel ACL 系统。我有一个用户表、一个角色表和一个权限表。当我使用中间件和内部中间件检查用户授予的权限时,我使用explode() 函数。此功能只显示其他权限不包含的第一个权限。
这是我的控制器;
function __construct()
{
$this->middleware('auth');
$this->middleware('HasPermission:Role-Read,Role-Update,Role-Delete');
}
My Middleware.
public function handle($request, Closure $next,$permissions='')
{
$permissions_array = explode(',', $permissions);
dd($permissions_array);
foreach($permissions_array as $permission){
if(Auth::user()->hasPermission($permission)){
return $next($request);
}
}
return redirect()->back();;
}
我使用dd() 函数时的结果。
array:1 [▼
0 => "Role-Read"
]
【问题讨论】:
-
尝试使用
-符号而不是,尝试这个$permissions_array = explode('-', $permissions); -
不,我已经授予了这样的权限
'HasPermission:Role-Read,Role-Update,Role-Delete'所以,我需要这样的字符串Role-Read