Задать вопрос

Как задать условие использования innerJoin в createQueryBuilder?

Надо что бы при наличии $statuses использовался innerJoin, а при отсутствии $statuses - не использовался.
$all = $this
                ->createQueryBuilder('u')
                ->select('count(u.id)')
                ->innerJoin('u.roles', 'r', 'WITH', 'r.id IN (' . $statuses . ')')
                ->getQuery()
                ->getSingleScalarResult();
  • Вопрос задан
  • 296 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Java-разработчик
    8 месяцев
    Далее
  • Shultais Education
    Основы SQL
    3 месяца
    Далее
  • OTUS
    PHP Developer. Professional
    5 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 2
skobkin
@skobkin
Гентушник, разработчик на PHP и Symfony.
В чём проблема-то?
// За форматирование извиняюсь - писал всё вручную
$qb = $this->createQueryBuilder('u')->select('...');
if ($statuses) {
    $qb->innerJoin()
}
$all = $qb->getQuery()->getSingleScalarResult();

Подучите PHP что ли.
Ответ написан
BelCoder
@BelCoder Автор вопроса
php dev
Вот так работает
$qb = $this->createQueryBuilder('u')->select('...');
if ($statuses) {
    $qb = $qb->innerJoin()
}
$qb = $qb->getQuery();
$all = $qb->getSingleScalarResult();
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы