我有用户表、用户角色表和角色表。
我的user_roles表:
id, role_id, user_id
我的角色表:
id, name, description, created_at, updated_at
我的用户表:
id, first_name, last_name, user_name, avatar, account_status, email, password, remember_token, created_at, updated_at, deleted_at
现在,我试图让登录用户的角色包括角色描述,但似乎无法让它工作。
在我的用户模型中,我有这样的:
public function roles()
{
return $this->hasOne(User_roles::class, 'role_id', 'id');
}
这给了我User_role,但没有描述。我尝试了所属的属性
,但这给了我Roles
值,并与User_roles
表valus枢轴。反之亦然,这样我就可以得到User_roles
表值和透视将是Roles表
的描述吗?
目前属于婚姻关系:
public function roles()
{
return $this->belongsToMany(Roles::class, 'user_roles', 'id', 'id');
}
改用hasManyThrough
关系:
https://laravel.com/docs/5.6/eloquent-relationships#has-many-through
通过这种方式,您可以指定中间用户角色
表
你应该尝试以下解决方案
在用户模型中
public function roles()
{
return $this->belongsToMany(Role::class, 'user_roles');
}
内部控制器
$user = User::find($user_id);
$roles = $user->roles;
在用户模型中
public function roles()
{
return $this->belongsToMany('App\Role', 'role_user', 'user_id', 'role_id');
}