РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
90 of 258 menu

Метод orX класса Expr

Метод orX класса Expr объединяет переданные условия через логическое ИЛИ. Он принимает произвольное количество аргументов - объектов Expr или строковых условий - и возвращает новое составное выражение. Условие считается выполненным, если истинно хотя бы одно из переданных выражений.

Синтаксис

$expr->orX($x, $y, ...)

Пример

Давайте выберем статьи, у которых id равен 1 или views больше 100:

<?php namespace AppRepository; use AppEntityArticle; use DoctrineBundleEntityManager; use DoctrineORMEntityRepository; use DoctrineORMQueryExprExpr; class ArticleRepository extends EntityRepository { public function findByOrCondition(): array { $qb = $this->createQueryBuilder('a'); $qb->where( $qb->expr()->orX( $qb->expr()->eq('a.id', 1), $qb->expr()->gt('a.views', 100) ) ); return $qb->getQuery()->getResult(); } } ?>

Результат выполнения кода:

["article 1", "article 2", "article 3"]

Пример

Давайте объединим три условия: title равен 'abcde', active равен true или views меньше 50:

<?php namespace AppRepository; use AppEntityArticle; use DoctrineBundleEntityManager; use DoctrineORMEntityRepository; use DoctrineORMQueryExprExpr; class ArticleRepository extends EntityRepository { public function findByMultiOr(): array { $qb = $this->createQueryBuilder('a'); $qb->where( $qb->expr()->orX( $qb->expr()->eq('a.title', ':title'), $qb->expr()->eq('a.active', ':active'), $qb->expr()->lt('a.views', 50) ) ); $qb->setParameter('title', 'abcde'); $qb->setParameter('active', true); return $qb->getQuery()->getResult(); } } ?>

Результат выполнения кода:

["article 1", "article 2"]

Смотрите также

  • класс Expr,
    который строит выражения для запросов Doctrine
  • метод andX,
    который объединяет условия через логическое И
  • метод eq,
    который сравнивает поле с значением
  • метод not,
    который инвертирует условие
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить