我在角色模型和用户模型之间建立了多对多关系.他们有一个名为role_user的数据透视表.它由id,user_id和role_id组成.
我的用户模型具有以下关系:
public function roles(){
return $this->belongsToMany('App\Role');
}
和这个功能:
public function hasRole($role){
return null !== $this->roles()->where("name", $role)->first();
}
我在尝试检查用户是admin还是Super Admin之前尝试制作PostPolicy类
public function before(User $user){
if($user->hasRole('Admin') || $user->hasRole('Super Admin') ){
return true ;
}
}
我的角色表:
id
name
description
created_at
updated_at
使用者:
id
name
email
email_verified_at
password
remember_token
created_at
updated_at
解决方法:
当我编写您的代码并附加角色时,它开始起作用:
$user->roles()->attach($roleName);