我在角色模型和用户模型之间建立了多对多关系.他们有一个名为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);
如果在PostPolicy @ before方法中,我还添加return false(在这里工作example)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。