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

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

Метод all класса Expr создаёт выражение, которое возвращает истину, если для всех элементов коллекции выполняется переданное условие. Первым параметром передаётся выражение-условие, которое проверяется для каждого элемента. Метод часто используется в подзапросах Doctrine для фильтрации сущностей по связанным коллекциям.

Синтаксис

Expr::all(mixed $expr)

Пример

Давайте получим все статьи, у которых все комментарии содержат текст 'abcde'. Для этого построим подзапрос с методом all:

<?php namespace App\Repository; use App\Entity\Article; use Doctrine\ORM\EntityRepository; use Doctrine\ORM\Query\Expr; class ArticleRepository extends EntityRepository { public function findAllWithAllCommentsText(): array { $expr = new Expr(); $sub = $this->createQueryBuilder('c') ->select('1') ->where($expr->all('c.text = :text')); return $this->createQueryBuilder('a') ->where($expr->exists($sub->getDQL())) ->setParameter('text', 'abcde') ->getQuery() ->getResult(); } } ?>

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

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

Пример

Давайте проверим, что все числа коллекции больше значения 5, используя метод all вместе с методом gt:

<?php use Doctrine\ORM\Query\Expr; $expr = new Expr(); $condition = $expr->all( $expr->gt('n.value', 5) ); $res = $condition->__toString(); echo $res; ?>

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

"ALL(n.value > 5)"

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

  • метод any,
    который проверяет, что хотя бы один элемент удовлетворяет условию
  • метод exists,
    который проверяет наличие элементов в подзапросе
  • метод gt,
    который создаёт условие "больше"
  • класс Expr,
    который содержит методы для построения выражений DQL
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить