Я наткнулся на проблему, которую я бы никогда не мог иметь, так как это тривиально решить использование SQL, но, поскольку я хочу сохранить кодовые, ориентированные на код, я попробовал подход DQL, QueryBuuilder и репозитория. До сих пор не повезло. инвентаризатор. Возможное решение с использованием любого из доступных инструментов доктрины. Поднудные невозможно выполнить, нет никаких скобок, чтобы определить вокруг соединений, и я не могу придумать любого другого решения. Подход: < /p>
$query = $this->createQueryBuilder('productVariant')
->leftJoin('productVariant.product', 'product')
->leftJoin('productVariant.shipmentOrderedProducts', 'items')
->join('items.shipment', 'shipment', Join::WITH, "shipment.status = 'INCOMING'");
< /code>
Тот же результат происходит от < /p>
$query = $this->createQueryBuilder('productVariant')
->leftJoin('productVariant.product', 'product')
->leftJoin('productVariant.shipmentOrderedProducts', 'items')
->leftJoin('items.shipment', 'shipment')
->andWhere("shipment.status = 'INCOMING'");
< /code>
образец возвращен JSON: < /p>
[
{
"id": 1,
"price": "154.00",
"items": [],
"product": {
"id": 1,
"name": "Name of the prod",
"status": true
},
"shipmentOrderedProducts": [
{
"quantity": 1,
"shipment": {
"id": 1,
"status": "INCOMING"
}
}
]
}
]
< /code>
Есть ли возможность достичь того, что я описал?$query = $this->createQueryBuilder('productVariant')
->leftJoin('productVariant.product', 'product')
->leftJoin('productVariant.shipmentOrderedProducts', 'items')
->leftJoin('items.shipment', 'shipment');
Подробнее здесь: https://stackoverflow.com/questions/797 ... n-doctrine