Laravel — как создать функцию списков, объединяющую first_name и last_name в качестве одного параметра

#php #eloquent #laravel-5.2

#php #красноречивый #laravel-5.2

Вопрос:

У меня есть запрос для всех администраторов, который я отправляю на мой взгляд в поле выбора. Интересно, как я могу объединить first_name и last_name в качестве одного параметра, чтобы у меня было полное имя в качестве параметров выбора?

Это запрос:

 $admins = Role::where('name', 'admin')
                        ->first()->users()->get()
                        ->lists('first_name', 'id')
                        ->toArray();
  

Ответ №1:

В User модели вы можете определить метод, который называется:

 public function getFullNameAttribute(): string
{
    return $this->first_name . ' ' . $this->last_name;
}
  

Используя этот метод, вы можете использовать $model->full_name атрибут.

 $admins = Role::where('name', 'admin')
                        ->first()->users()->get()
                        ->lists('full_name', 'id')
                        ->toArray();
  

Комментарии:

1. @Marco для дальнейшего использования это называется мутатором. Смотрите здесь .