@saorityan

Как варьировать типы загрузки (жадная/ленивая) в разных случаях для одной и той же модели Doctrine?

пример: есть товары, категории товаров, поставщики товаров
На странице списка категорий мне нужны только категории
На странице редактирования категории мне нужны категории и все связанные с ними товары (для простоты связь: одна категория - ко многим товарам)
На странице категорий для пользователя мне нужны все категории с предварительно загруженными поставщиками в этих категориях.
проблема в том, что если я сделаю жадной грузкой товары у категорий, то товары будут выбираться и на других страницах, хотя везде они не нужны.

А если выбирать не жадно, то для 10 категорий будет 11 запросов в бд.
Как лучше разруливать что для каких страниц выбирать.?

После опыта с eloquent хочется аналога with.
Наверняка с доктриной подобные проблемы уже решены.
  • Вопрос задан
  • 1067 просмотров
Пригласить эксперта
Ответы на вопрос 1
@miksir
IT
Я предпочитаю решать эти вопросы через DQL.
Т.е. в первом случае SELECT c FROM Category c;
Во втором случае SELECT p, c FROM Product p JOIN p.category;
И т.п. https://doctrine-orm.readthedocs.io/en/latest/refe...

Так же в случае DQL можно использовать setFetchMode
https://doctrine-orm.readthedocs.io/en/latest/refe...
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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