我正在使用 Laravel 5.6。我有一个users表firstname和lastname字段。
在我的User模型中,我也有这个功能
public function name()
{
return $this->firstname . ' ' . $this->lastname;
}
Run Code Online (Sandbox Code Playgroud)
现在在另一个控制器中,我想为所有用户创建一个下拉菜单。但我想显示name()而不仅仅是名字/姓氏。
我目前正在使用这个
$users = \App\User::pluck('lastname', 'id');
return view('myview', compact('MY_collection' , 'users'));
Run Code Online (Sandbox Code Playgroud)
在我看来(使用集体/html)
{!! Form::select('user', $users, isset($user) ? $MY_collection->user: null, ['class' => 'form-control']) !!}
Run Code Online (Sandbox Code Playgroud)
是否可以将 pluck 与方法功能一起使用?还是我应该做点别的?
我也知道访问器解决方案,但我name在数据库中没有属性,所以它不起作用。
访问器可以是您选择的任何名称,它们只需以以下形式开头get和结尾Attribute:
public function getNameAttribute() {
return $this->firstname . ' ' . $this->lastname;
}
$user->name
// this will give the result as above
public function getBlahBlahBlahAttribute() {
return $this->firstname . ' ' . $this->lastname;
}
$user->blah_blah_blah
Run Code Online (Sandbox Code Playgroud)
其中任何一个都需要勇气。
User::get()->pluck('name');
$user->setAppends(['name']);
$user->pluck('name');
Run Code Online (Sandbox Code Playgroud)