【发布时间】:2023-10-03 15:22:01
【问题描述】:
我的 Laravel 应用程序需要帮助。
我使用 spatie 角色和权限。
当我创建用户时,分配角色没问题。当我将更新同一个用户时,会出现以下错误:
[2019-12-06 08:44:36] local.ERROR:给定的角色或权限应使用保护
instead of `web`. {"userId":1,"exception":"[object] (Spatie\\Permission\\Exceptions\\GuardDoesNotMatch(code: 0): The given role or permission should use guard而不是web。在/home/vagrant/code/test/vendor/spatie/laravel-permission/src/Exceptions/GuardDoesNotMatch.php:12)
public function store(StoreUserRequest $request)
{
$user = $this->repo->create( $request->all());
$user->assignRole($request->roles);
return $user;
}
public function update(UpdateUserRequest $request, User $user)
{
$user = $this->repo->update($user, $request->all());
$user->assignRole($request->roles);
return $user;
}
我在用户模型中添加了protected $guard_name = 'web';,但仍然是同样的问题。
怎么了? userId 有问题吗?
【问题讨论】:
-
如果您尝试删除 tbl
models_has_roles然后将assignRole()再次删除给您的用户DB::table('model_has_roles')->where('model_id',$id)->delete();并再次分配角色$user->assignRole($request->input('roles'));,这可能会很好
标签: laravel roles laravel-permission