我正在使用 Laravel 5.4。我想将所有权限分配给“管理员”角色。但员工不能删除或编辑记录。我正在使用Entrust包获取基于角色的权限。
我已经为此编写了路线,但不幸的是它不适用于员工。
Route::group(['prefix' => 'admin', 'middleware' => 'auth'], function () {
// Route::resource('plotsize', 'plotSizeController');
Route::group(['middleware' => 'role:Employee'], function () {
Route::resource('plotsize', 'plotSizeController', ['except' => 'edit', 'update', 'delete']);
});
Route::group(['middleware' => 'role:Admin'], function () {
Route::resource('plotsize', 'plotSizeController');
}); });
这是我尝试过的另一种方法,但不幸的是它也不起作用。
protected $user;
public function __construct()
{
$this->middleware(function ($request, $next) {
if(Auth::user()->hasRole('Admin')){
$this->middleware('role:Admin');
return $next($request);
}
if(Auth::user()->hasRole('Employee')){
$this->middleware('role:Employee', ['only' => ['edit', 'update', 'destroy']]);
return $next($request);
}
});
}
如果你建议我在 Laravel 中使用 Policy。我已经尝试过了,但我不明白这有什么问题。你能给我举个例子吗?谢谢