php - 具有多对多关系的 Laravel 策略

标签 php laravel-5.6

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

路线:

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

RolePermissionController:

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

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

    ...
}

RolePermissionPolicy:

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

是不是中间表没有关联Model?

最佳答案

我有一个类似的场景,我正在做:

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

我认为(还没有测试过)你也可以这样做:

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

我是 Laravel 的新手,我得到了一些解决类似问题的帮助,希望这对你有用。

关于php - 具有多对多关系的 Laravel 策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48842783/

相关文章:

php - gzip、md5-call-cachefiles-in-server、无限缓存控制后,加载我的网站仍然很慢,需要缓存方面的帮助

javascript - 使用 setinterval 函数重新加载 javascript 变量

php - 如何通过使用 WSGI 执行 Python 脚本来避免 PHP exec()?

php - Laravel 5.6 如何向所有日志记录添加数据?

php - Laravel 5.6-禁用错误

mysql - 如何将条件聚合 mysql 转换为 laravel 查询?

php - 如何在 Laravel eloquent 的子查询中使用 "With"和条件?

php - Laravel 5.6 测试文件上传(无法在路径 [file.txt] 找到文件)

PHP $_SESSION 有时工作有时不工作

javascript - 传递 id 来具体化模态 laravel