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

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

Метод andX класса Expr объединяет переданные условия в одно составное условие через логический оператор AND. Метод принимает произвольное количество аргументов - выражений, построенных с помощью других методов класса Expr. Если хотя бы одно из условий окажется ложным, всё составное условие также будет ложным.

Метод особенно удобен при построении сложных фильтров в QueryBuilder, когда нужно одновременно проверить несколько полей сущности.

Синтаксис

andX(...$x)

Пример

Давайте объединим два условия через andX и выведем результат:

<?php use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\Query\Expr; class ArticleRepository { public function __construct(private EntityManagerInterface $em) { } public function findActive(): array { $expr = new Expr(); $where = $expr->andX( $expr->eq('a.status', ':status'), $expr->gt('a.count', ':count') ); return $this->em->createQueryBuilder() ->select('a') ->from('App\Entity\Article', 'a') ->where($where) ->setParameter('status', 'active') ->setParameter('count', 5) ->getQuery() ->getResult(); } } ?>

Пример

Давайте посмотрим, как выглядит итоговое условие, построенное методом andX:

<?php use Doctrine\ORM\Query\Expr; $expr = new Expr(); $where = $expr->andX( $expr->eq('a.status', ':status'), $expr->gt('a.count', ':count') ); echo (string) $where; ?>

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

"a.status = :status AND a.count > :count"

Пример

Давайте объединим три условия, включая проверку на null:

<?php use Doctrine\ORM\Query\Expr; $expr = new Expr(); $where = $expr->andX( $expr->eq('a.status', ':status'), $expr->isNotNull('a.createdAt'), $expr->between('a.count', ':min', ':max') ); echo (string) $where; ?>

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

"a.status = :status AND a.createdAt IS NOT NULL AND a.count BETWEEN :min AND :max"

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

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