как написать подзапрос с помощью QueryBuilder

doctrine QueryBuilder -- Как передать параметр в подзапрос. expr->orX()

Как построить сложный подзапрос expr()->... смотри здесь.

Метод setParameter() нельзя включить в цепочку после добавления части подзапроса, т.к.

($qb->expr()->orX())->add()

не возвращает QueryBuilder-объект, чьим методом является setParameter().

Это создаёт проблему, когда мы заранее не знаем, передан ли тот или иной параметр в работу, и следовательно, будет ли добавлена соответствющая часть в подзапрос.

doctrine QueryBuilder -- Пример сложного запроса с подзапросом. expr->orX()

Задача

Написать сложный sql-запрос для поиска значений в таблице sale по нескольким фильтрам.

Сложность 1: не обязательно все фильтры переданы (могут быть null).
Сложность 2: несколько фильтров строгие (условия будут дополнять друг друга, необходимо найти пересечение результатов), а несколько - нестрогие (необходимо найти объединение результатов поиска по этим фильтрам). В итоге мы должны найти пересечение результатов поиска по первой группе фильтров и по второй.

Subscribe to RSS - как написать подзапрос с помощью QueryBuilder