微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我的多对多关系未返回所需的用户角色

我在角色模型和用户模型之间建立了多对多关系.他们有一个名为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 举报,一经查实,本站将立刻删除。