Eloquent загрузить пользовательский атрибут - PullRequest
0 голосов
/ 25 октября 2018

Контекст: я использую Lumen для создания API-интерфейса JSON и стараюсь сделать запросы как можно меньше

Я не могу понять, как условно добавить красноречиеАтрибут модели при загрузке.

Мой пример довольно сложен для объяснения - поэтому я постараюсь свести его к более простому объяснению.

Давайте рассмотрим пример Категории , Сообщения и Комментарии .

С точки зрения отношений:

  • Категории имеет много Посты .
  • Посты имеют Комментарии , но по разным причинам это не простая связь и требует некоторой пользовательской фильтрациии присоединение.

Вопрос 1 : я «прикрепил» комментарии к сообщениям через атрибут - это правильно?

Я использовал getCommentsAttribute метод и добавлен comments в массив appends на модели.

Однако, при перечислении всех сообщений в категории Комментарии приходят для поездки - таким образом, JSON становится довольно большим файлом (много постов со многими категориями).

Я понимаю, что это потому, что они автоматически добавляютсяи удалите его из массива appends.

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

Categories::find(2)->with([
    'posts'
]);

Я пытался добавить запрос после сообщений и использовать другой с утверждениями, но не могу получить доступкомментарии.

Вопрос 2: Как вы условно добавляете атрибуты к оператору активной загрузки, чтобы загружать их по определенным запросам?

...