Я занимаюсь разработкой системы ACL Laravel. У меня есть таблица пользователей, таблица ролей и таблица разрешений. Когда я проверяю предоставленные пользователю разрешения с использованием промежуточного программного обеспечения и внутри промежуточного программного обеспечения, я использую функцию 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"
]