如何将中间表列检索为数组?
例如:
users
和roles
的中间表,名为role_user
,它是这样的:
id
user_id
role_id
我想获得当前用户的role_id
s:
public function test()
{
//$roles is a collection.
$roles=Auth::user()->roles;
//I want to get `role_id`s like this:
//$roleIds=[1,2,3];
}
怎么做?
答案 0 :(得分:1)
在用户模型
中使用此雄辩关系功能public function roles()
{
return $this->belongsToMany('App\Role', 'role_user', 'user_id', 'role_id');
}
public function getUserRole()
{
return $this->roles()->first();
}
如果用户有一个角色,您可以像这样访问
Auth::user()->getUserRole();
如果用户有多个角色,您可以致电
Auth::user()->roles;
答案 1 :(得分:1)
您可以尝试使用Collection的pluck
方法。 See the documentation.
$roleIds = $roles->pluck('id')