Laravel – список выбора заполнения с производными значениями

У меня есть модель Eloquent (докладчики), которая имеет три столбца: id , first_name и last_name . То, что я хочу сделать, – это заполнить опции выбора, чтобы идентификатор был значением и first_name . last_name first_name . last_name – это то, что отображается.

Например, если бы у меня были эти докладчики:

 id, first_name, last_name 1, Billy, Bob 2, Jose, Cuervo 3, Puff, the Magic Dragon 

Я хочу что-то похожее на этот вывод:

 <select name="presenters"> <option value="1">Billy Bob</option> <option value="2">Jose Cuervo</option> <option value="3">Puff the Magic Dragon</option> </select> 

Я знаю, что если я только забочусь о фамилии или имени в списке выбора, я могу сделать это:

 {{ Form::select("presenters", Presenter::lists("first_name", "id"), Input::old("presenters"), array( "class" => "form-control" )) }} 

Есть много вопросов, касающихся заполнения входов выбора для моделей в Laravel, хотя я еще не нашел один, который показывает, как заполнять вход выбора, где производное значение должно отображаться в каждом из вариантов, а не только в одном столбце.

Могу ли я использовать метод lists для заполнения элемента select, или мне нужно будет заполнить свой собственный массив значений / текстов вариантов?

 Presenter::select('id', DB::raw('CONCAT(first_name, " ", last_name) AS full_name'))->lists('full_name', 'id'); 

Вы предоставили ответ, посмотрите ответ PaulDM

Просто приспосабливайте его, надейтесь, что это сработает для вас:

 // your eloquent model ... public static function listPresenters() { $ret = []; foreach (self::all() as $presenter) { $ret[$presenter->id] = "{$presenter->first_name} {$presenter->last_name}"; } return $ret; } // your eloquent model ...