1

我正在使用 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。我已经尝试过了,但我不明白这有什么问题。你能给我举个例子吗?谢谢

4

0 回答 0