Laravel spatie 将角色分配给不工作的用户

标签 laravel laravel-permission

我只是在做文档中的内容,但上帝知道问题是什么。我已经把use HasRoles;在我的用户模型中

use Spatie\Permission\Traits\HasRoles;

class User extends Authenticatable implements JWTSubject
{
    use HasRoles;
}
但一次又一次,收到此错误:
 Call to undefined method Illuminate\Database\Eloquent\Builder::assignRole()
每当在播种机中分配角色时:
  use App\Models\User;
  use Illuminate\Database\Seeder; 
  use Spatie\Permission\Models\Permission;
  use Spatie\Permission\Models\Role;

  public function run()
  {
     $role = Role::where('name', 'Admin')->first();
     $user = User::where(['email' => 'admin@admin.com', 'password' => 'password']);
     $user->assignRole($role);
  }
givePermissionTo也在抛出同样的错误。知道为什么会出现此错误吗?

最佳答案

您可以申请 assignRole()模型实例 ,不是 建筑商 :

public function run()
{
  $role = Role::where('name', 'Admin')->first();
  $user = User::where(['email' => 'admin@admin.com', 'password' => 'password'])->first();
  $user->assignRole($role);
}

关于Laravel spatie 将角色分配给不工作的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67588873/

相关文章:

尝试使用 throttle 时,Laravel 作业在 Redis 上失败

laravel - Laravel在域和子域中共享cookie检测问题

php - Laravel 5.7 + Spatie 权限 + JWT 授权

laravel - Spatie Laravel 权限 - 如何获取具有一个角色或另一个角色的用户

laravel - 如何在 spatie/laravel-permission 中删除用户的所有角色

php - Laravel 检查返回站点

php - Laravel - 很多用于使用 Blade 渲染 View 的访问器(Mutators)

php - Laravel 以一种很好的方式从 Controller 定义默认布局

php - Laravel Eloquent - pluck() 角色名称

php - Laravel Spatie 角色和权限 : How to change default tables?