@glebn
Золото, а не человек!

Как добавить объект в список возвращаемый моделью в Laravel?

Подскажите пожалуйста такую вещь
Возвращаю в контроллере список всех пользователей
$users = User::all();
И мне нужно к каждому пользователю добавить новое поле которое зависит от существующих. Например у меня есть $user->name и $user->lastname, а я хочу сделать еще один объект $user->fio = $user->name.' '.$user->lastname; чтоб потом распечатать во вьюхе.
Естественно, самое простое это сделать цикл foreach ($users as $user) и добавить. Но мне кажется в ларавеле должно быть более элегантное решение

PS.В действительности операция с двумя полями гораздо сложнее чем $user->fio = $user->name.' '.$user->lastname; т.е. не нужно предлагать распечатать $user->name и $user->lastname через пробел во вьюхе. Важно именно добавить новый объект в список.
  • Вопрос задан
  • 352 просмотра
Решения вопроса 1
DJZT
@DJZT
Laravel - code for you
public function getFioAttribute() {
return $this->name . ' ' . $this->lastname;
}


В итоге использовать так
$user->fio
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
JhaoDa
@JhaoDa
LaravelRUS Team
Комментировать
neuotq
@neuotq
Прокрастинация
Идешь в свою User модель(обычно в app/User.php) и пишешь публичный метод:
***
public function getFio() {
return $this->name . ' ' . $this->lastname;
}
***

А затем где теме нужно, вызываешь (наппример в Blade):
@foreach($users as $user)
{{$user->getFio()}}
@endforeach
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы