3

RolePermission是两个模型,因为它们具有多对多关系,所以我有一个名为permission_roletable 的中间表。但这没有模型。我正在尝试将Permission附加到Role。但$this->authorize('create', RolePermission::class);总是因错误而失败"This action is unauthorized."

路线

Route::post('/rolepermissions/{role}/addpermission', 'RolePermissionController@store')
       ->name('rolepermission.store');

角色权限控制器

public function store(StoreRolePermission $request, Role $role)

{
    $this->authorize('create', RolePermission::class);

    ...
}

角色权限策略

public function create(User $user)
{
    if (($user->usertype == 'ADMIN') || ($user->usertype == 'SUPERADMIN'))
    {
        return true;
    }
    else
    {
        return false;
    }
}

是不是因为中间表没有关联的Model?

4

1 回答 1

0

我有类似的情况,我正在做:

Auth:user()->can('create', RolePermission::class);,而不是授权。

我认为(尚未测试)您也可以这样做:

$this->authorize('create', [RolePermission::class, Auth::user()]). 数组中的第二个参数将作为策略中的唯一参数传递。

我对 Laravel 很陌生,我得到了一些帮助来解决类似的问题,希望这对你有用。

于 2018-07-27T18:47:24.910 回答