0

我有一个下拉框,仅显示具有收藏家和借款人角色的用户。这是我的代码

public function create()
{
    $users = User::whereHas('roles', function ($q) {
                $q->where('roles.name', '=', 'collector')->orWhere('roles.name', '=', 'borrower');
            })
            ->with('profile')
            ->get()
            ->pluck('name','id');

    return view('dashboard.documents.create', compact('users'));
}

这段代码很好,但我要采摘的是'profile'中的first_name,last_name和user_id列。我怎样才能做到这一点?

非常感谢您!

4

1 回答 1

0

你做其中之一

$users = User::whereHas('roles', function ($q) {
             $q->where('roles.name', '=', 'collector')->orWhere('roles.name', '=', 'borrower');})
            ->with('profile')
            ->select('name','id')
            ->get();

或者

$users = User::whereHas('roles', function ($q) {
             $q->where('roles.name', '=', 'collector')->orWhere('roles.name', '=', 'borrower');})
            ->with('profile')
            ->get(['name','id']);

两种方式都将返回一个collection带有相关模型的每个模型记录将具有选定的列,如果要将其转换为数组,可以->toArray()在两种方式之后添加,它将集合转换为数组。

于 2020-11-18T19:49:36.850 回答