Laravel:如何将一列中间表检索为数组?

时间:2017-08-20 05:29:59

标签: laravel

如何将中间表列检索为数组?

例如:
usersroles的中间表,名为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];
}

怎么做?

2 个答案:

答案 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')