我只是在做文档中的内容,但上帝知道问题是什么。我已经把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/