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

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

Метод in класса Expr создаёт выражение, которое проверяет, входит ли значение поля в заданный набор значений. Первым параметром передаётся имя поля, вторым - массив значений для проверки. Метод используется при построении запросов через QueryBuilder или Expr в Doctrine.

Синтаксис

public function in(string $field, array $values): Expr\Func

Пример

Давайте создадим запрос, который выбирает статьи, у которых поле id входит в набор значений:

<?php namespace App\Repository; use App\Entity\Article; use Doctrine\ORM\EntityRepository; use Doctrine\ORM\QueryBuilder; class ArticleRepository extends EntityRepository { public function findByIds(array $ids): array { $qb = $this->createQueryBuilder('a'); $qb->where($qb->expr()->in('a.id', $ids)); return $qb->getQuery()->getResult(); } } ?>

Результат выполнения кода для $ids = [1, 2, 3]:

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

Пример

Давайте создадим запрос, который выбирает статьи, у которых поле status входит в набор строковых значений:

<?php namespace App\Repository; use App\Entity\Article; use Doctrine\ORM\EntityRepository; class ArticleRepository extends EntityRepository { public function findByStatuses(array $statuses): array { $qb = $this->createQueryBuilder('a'); $qb->where($qb->expr()->in('a.status', $statuses)); return $qb->getQuery()->getResult(); } } ?>

Результат выполнения кода для $statuses = ['active', 'pending']:

["article", "user"]

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

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