我有用户表,user_roles表和角色表。
我的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但没有描述。我尝试了belongsToMany
,但这给了我Roles
值并使用User_roles
表格值进行了调整。我可以这样做,反之亦然,所以我得到User_roles
表格值,枢轴将是Roles table
的描述吗?
目前BelongsToMany关系:
public function roles()
{
return $this->belongsToMany(Roles::class, 'user_roles', 'id', 'id');
}
答案 0 :(得分:1)
改为使用hasManyThrough
关系:
https://laravel.com/docs/5.6/eloquent-relationships#has-many-through
这样您就可以指定中间user_role
表
答案 1 :(得分:1)
你应该尝试以下解决方案
在用户模型中
$user = User::find($user_id);
$roles = $user->roles;
在控制器中
ID Fig1 Fig2
A-1 10 -18
A-1 15 20
A-1 25 75
A-2 18 22
A-2 34 70
答案 2 :(得分:0)
在用户模型中
public function roles()
{
return $this->belongsToMany('App\Role', 'role_user', 'user_id', 'role_id');
}