• Как выполнить подзапрос в Doctrine DQL?

    @warmic
    Доктрина,конечно,не очень хороша в подзапросах,однако выход есть

    Пример
    $subDQL = $this->getEntityManager()->createQueryBuilder()
    ->select('c.p_id')
    ->from(SomeClass::class, 'c')
    ->where((new Expr())->in('c.status', [
    'a', 'b'
    ]))
    ->andWhere('c.date >= :dateFrom')
    ->distinct();

    $mainDQL = $this->createQueryBuilder('p')
    ->select('p')
    ->where((new Expr())->in('p.id', $subDQL->getDQL()))
    ->setParameter('dateFrom', $dateFrom)
    ->orderBy('p.tdsId', Criteria::ASC);
    Ответ написан
    Комментировать