@aassdds
Люблю борщ и PHP

Хорошо ли использовать динамические свойства модели в представлении?

Добрый день!
Начал учить laravel. И сразу хочется выучиться как можно более близко к "правильному варианту".
ЗАдачка простая, есть пользователь и его статьи
Вопрос собственно в названии...
Если более развернуто, то я не знаю какой из вариантов более правильный (работают то они оба)
вариант 1:
В контроллере получить все нужные данные для отображения: Пользователя, его статьи
// почти псевдокод, но думаю суть понятна
$user = User:find(2);
$articles = $user->articles()
return функция_отображения

и в шаблоне уже использовать эти 2 переменные
ЛИБО
в контроллере получить только юзера и передать его в представление
А уже в представлении получать его статьи {{ $user->articles }}

Работают оба варианта, но что- то мне подсказывает что 1й вариант "правильнее" чем 2й
Все таки получение статей пользователя в представлении - это как бы работа с БД, а это вроде не хорошо

Направьте меня в нужную сторону, чтобы потом не пришлось краснеть перед старшими сотрудниками за свой код
Ну и если где то есть примеры "правильного написания кода" по Ларе, я буду очень признателен за ссылки
  • Вопрос задан
  • 137 просмотров
Пригласить эксперта
Ответы на вопрос 1
zvermafia
@zvermafia
WebDev
Первый вариант лучше. Но если $articles надо только вводит на экран, то думаю еще лучше так:
// controller
$user = User::with('articles')->findOrFail($id);

// view
$user->articles // Без скобок! Данные уже были загружены и еще одного запроса к БД не будет

Подробно тут: Eager Loading.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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