Используя dql, я попытался проверить, является ли сущность членом сущности набора
entites:
product
customer
customer.orders (collection)
customer.orders.products (collection, type: product)
customer.cancellations.productContainers (collection)
customer.cancellations.productContainers.product (entity, type: product)
Клиент имеет несколько заказов. Заказ имеет несколько продуктов. Клиент имеет несколько аннулирования. Отмена имеет несколько продуктов. Продукт имеет контейнер.
Проблема
Я хочу получить все упорядоченные продукты, которые не будут отменены.
$qb->select('c, d, p')
->from('XyzBundle:Customer', 'c')
->leftJoin('c.orders', 'co')
->leftJoin('co.products', 'cop')
->leftJoin('c.cancellation', 'ca')
->leftJoin('ca.productContainers', 'cap')
->leftJoin('cap.product', 'capp')
->andWhere('cop NOT MEMBER OF capp')
однако это не сработает, потому что ca.productContainers - это поле сбора, а не его суффикс ca.productContainers.product. таким образом, я получаю следующую ошибку:
CRITICAL - Uncaught PHP Exception Doctrine\ORM\Query\QueryException:
"[Semantical Error] line 0, col 414 near 'product': Error: Invalid PathExpression.
Must be a CollectionValuedAssociationField." at
/vagrant/vendor/doctrine/orm/lib/Doctrine/ORM/Query/QueryException.php line 4 9
Любые предложения, как это решить?