目前我这样做是为了将用户列表传递到我的视图中:
$users = User::lists('name', 'id');
return View::make('admin.gifs.add')->with('user_list', $users);
视图如下所示:
{{ Form::select('owner-id', $user_list, NULL, array('class' => 'form-control')) }}
效果很好,并在选择字段中输出name
,其值为id
。我想要做的是在选择字段中显示name
和email
。这可能吗?
我试过像$users = User::lists('name', 'email', 'id');
这样的东西没有用,有没有办法将它们组合在一起,让select
的值与First Last [email@domain.com]
类似?
答案 0 :(得分:1)
$users = User::lists('name','email','id');
然后你必须修改结果数组,使它包含两个值而不是三个。
$correctList = [];
foreach ($users as $u) {
$correctList[] = [$u->name . $u->email, $u->id];
}
然后将新列表传递给视图,您就完成了。
答案 1 :(得分:1)
您可以在原始查询中与CONCAT
一起破解,但它不值得。
相反,请自己构建列表:
$users = [];
User::all()->each(function ($user) use (&$users)
{
$users[$user->id] = "{$user->name} [{$user->email}]";
});
return View::make('admin.gifs.add')->with('user_list', $users);