Php 我的多对多关系不返回所需的用户角色
我在角色和用户模型之间创建了多对多关系。他们有一个名为Php 我的多对多关系不返回所需的用户角色,php,laravel,Php,Laravel,我在角色和用户模型之间创建了多对多关系。他们有一个名为role\u user的数据透视表。它由id、用户id和角色id组成 我的用户模型具有以下关系: public function roles(){ return $this->belongsToMany('App\Role'); } 这个功能是: public function hasRole($role){ return null !== $this->roles()->where("name", $rol
role\u user
的数据透视表。它由id
、用户id
和角色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 ;
}
}
该函数返回的响应为false,但是我与具有Admin角色的用户一起登录
我的角色表:
id
name
description
created_at
updated_at
用户:
id
name
email
email_verified_at
password
remember_token
created_at
updated_at
您是否在角色模型上设置了用户功能
我相信您必须同时具备这两种能力,才能使多对多在Laravel中正常工作。当我编写代码并附加角色时,它就会开始工作:
$user->roles()->attach($roleName);
我还在
中的if
下添加return false
PostPolicy@before
method)-这里正在工作这个空间是偶然的吗?关于命名,我会将任何角色写为小写。我有一个角色模型的函数