我只是在做文档中的内容,但上帝知道问题是什么。我已将 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
也抛出同样的错误。知道为什么会出现此错误吗?
答案 0 :(得分:1)
您可以将 assignRole()
应用于模型实例,而不是构建器:
public function run()
{
$role = Role::where('name', 'Admin')->first();
$user = User::where(['email' => 'admin@admin.com', 'password' => 'password'])->first();
$user->assignRole($role);
}