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

我在角色模型和用户模型之间建立了多对多关系.他们有一个名为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)

相关文章

laravel的dd函数不生效怎么办
看不懂laravel文档咋办
安装laravel框架出现command怎么办
Laravel开发API怎么使用事务
laravel怎么构建复杂查询条件
laravel如何实现防止被下载