Symfony — пользовательский запрос Doctrine для загрузки объекта сопоставления сопоставлений

Как я могу настроить запрос для отображения сопоставления доктрины?

предположение

  1. Две таблицы в базе данных, которые являются пользователем и элементом
  2. В таблице элементов есть атрибут с именем is_deleted (логический), когда значение установлено в true, это означает, что оно удалено.
  3. Настройка проекта с Symfony3

сценарий

Например, у меня есть 2 класса сущностей, которые являются User и Item. Отношения между этими двумя объектами один ко многим (у каждого пользователя может быть много предметов).

Когда я пытаюсь получить пользователя, связанные с ним элементы также будут загружены (ленивый, нетерпеливый, лишний ленивый).

Я пытаюсь добиться того, чтобы настроить загрузку сопоставления сопоставлений, при которой загружаются только элементы с is_deleted, равным false. Как я могу это сделать?

Ваша помощь очень ценится.

-1

Решение

$em->createQueryBuilder()
->select('Item')
->from('XYZBUNDLE:Item', 'Item')
->leftJoin('XYZBUNDLE:User', 'User')
->where('Item.is_deleted', ':is_deleted')
->andWhere('User.id', ':userId')
->setParameter('is_deleted', false)
->setParameter('userId', 1)
->getQuery()->getResult();

Здесь вы можете удалить условие для пользователя, если вы хотите получить все результаты для всех пользователей.

0

Другие решения

Вы можете использовать систему фильтров Доктрины, Может быть.

http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/filters.html

Я не пробовал это.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector