DJZT
@DJZT
Laravel - code for you

Как добавить вычисляемое поле в выборку eloquent в Laravel?

Добрый вечер. Вопрос на засыпку. Как сделать что бы во время выборки списка моделей методом
$Projects = Project::with('user')->all();

У связанных моделей User было поле, которое вычисляется во время выборки. То есть как-то присунуть ему метод
selectRaw("CONCAT(f_name, f_name) as name")

Это необходимо для поиска по имени юзера связанной модели.
  • Вопрос задан
  • 1881 просмотр
Решения вопроса 1
@Kraky
$projects = Project::with(['user' => function ($query) {
    return $query->selectRaw('users.*, CONCAT(users.f_name, users.f_name) as name');
}])->all();
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Denormalization
@Denormalization
Сделать метод у User:
public function getNameAttribute()
{
    return $this->attributes['f_name'] . $this->attributes['f_name'];
}


И потом просто вызывать:
$project->user->name;
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы