Контекст: я использую Lumen для создания API-интерфейса JSON и стараюсь сделать запросы как можно меньше
Я не могу понять, как условно добавить красноречиеАтрибут модели при загрузке.
Мой пример довольно сложен для объяснения - поэтому я постараюсь свести его к более простому объяснению.
Давайте рассмотрим пример Категории , Сообщения и Комментарии .
С точки зрения отношений:
- Категории имеет много Посты .
- Посты имеют Комментарии , но по разным причинам это не простая связь и требует некоторой пользовательской фильтрациии присоединение.
Вопрос 1 : я «прикрепил» комментарии к сообщениям через атрибут - это правильно?
Я использовал getCommentsAttribute
метод и добавлен comments
в массив appends
на модели.
Однако, при перечислении всех сообщений в категории Комментарии приходят для поездки - таким образом, JSON становится довольно большим файлом (много постов со многими категориями).
Я понимаю, что это потому, что они автоматически добавляютсяи удалите его из массива appends
.
Однако я изо всех сил пытаюсь вернуть их обратно.Если мне нужен другой список категорий с включенными комментариями, я не могу ссылаться на них
Categories::find(2)->with([
'posts'
]);
Я пытался добавить запрос после сообщений и использовать другой с утверждениями, но не могу получить доступкомментарии.
Вопрос 2: Как вы условно добавляете атрибуты к оператору активной загрузки, чтобы загружать их по определенным запросам?