Как реализовать следующий запрос с помощью Query Builder?
SELECT *
FROM t
WHERE t.status = 1
OR EXISTS(SELECT *
FROM r
WHERE r.t_id = t.id
AND r.status = 1
)
Часть без проверки exist проста, но есть ли способ реализовать EXISTS
?
Либо вам нужно использовать два конструктора запросов:
$queryBuilder->expr()->exists($subQueryBuilder->getDql());
либо использовать DQL напрямую:
$queryBuilder->expr()->exists('SELECT *
FROM r
WHERE r.t_id = t.id
AND r.status = 1'
);
Вы'найдете больше примеров в документации: http://www.doctrine-project.org/projects/doctrine-orm/en/current/reference/query-builder.html.