Laravel spatie 向用户分配角色无效
Laravel spatie assign role to user not working
我只是在做文档中的内容,但天知道问题出在哪里。我已将 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()
,而不是 builder :
public function run()
{
$role = Role::where('name', 'Admin')->first();
$user = User::where(['email' => 'admin@admin.com', 'password' => 'password'])->first();
$user->assignRole($role);
}
添加特征使用HasRoles;在您的用户模型中。
用 use Spatie\Permission\Traits\HasRoles 导入它;在用户模型文件的顶部。
我只是在做文档中的内容,但天知道问题出在哪里。我已将 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()
,而不是 builder :
public function run()
{
$role = Role::where('name', 'Admin')->first();
$user = User::where(['email' => 'admin@admin.com', 'password' => 'password'])->first();
$user->assignRole($role);
}
添加特征使用HasRoles;在您的用户模型中。
用 use Spatie\Permission\Traits\HasRoles 导入它;在用户模型文件的顶部。