Laravel采摘,但结合名字+姓氏选择

Lov*_*ock 2 laravel jquery-select2 eloquent laravel-5

将select2与Laravel/Vue项目一起使用,需要以下列格式返回JSON:

[
    { id: 0, text: 'enhancement' },
    { id: 1, text: 'bug' }
]
Run Code Online (Sandbox Code Playgroud)

在Laravel我知道我可以使用pluck来创建我的列表数据,例如为客户:

$customers = Customer::pluck('id', 'first_name');
Run Code Online (Sandbox Code Playgroud)

但是想要将id和名字+姓氏作为单个名称返回.

我怎样才能做到这一点?

dev*_*ev7 12

你尝试过使用Accessors吗?

https://laravel.com/docs/5.4/eloquent-mutators#defining-an-accessor

我没有测试过,但这可行:

将此添加到您的客户口才模型中:

    public function getFullNameAttribute($value)
    {
       return ucfirst($this->first_name) . ' ' . ucfirst($this->last_name);
    }
Run Code Online (Sandbox Code Playgroud)

然后尝试:

UPDATED pluck on accessor仅适用于集合.如果您尝试Customer::pluck('id', 'full_name')它将无法工作,因为没有名为full_name的db列,因此您必须使用Customer::all()->pluck('id', 'full_name')

$customers = Customer::all()->pluck('id', 'full_name');
Run Code Online (Sandbox Code Playgroud)
  • 作为旁注,为了提高性能,最好这样做,Customer::all(['id', 'first_name', 'last_name'])->pluck(...)以便我们不从db中提取不必要的列.

希望这可以帮助.