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

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

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

Синтаксис

$expr->between(field, from, to)

Пример

Давайте создадим запрос, который выберет статьи с идентификатором в диапазоне от 1 до 5:

<?php namespace App\Controller; use App\Entity\Article; use Doctrine\ORM\EntityManagerInterface; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; class ArticleController extends AbstractController { public function index(EntityManagerInterface $em): Response { $qb = $em->createQueryBuilder(); $qb->select('a') ->from(Article::class, 'a') ->where($qb->expr()->between('a.id', 1, 5)); $res = $qb->getQuery()->getResult(); return $this->json($res); } } ?>

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

[ {"id": 1, "title": "article 1"}, {"id": 2, "title": "article 2"}, {"id": 3, "title": "article 3"}, {"id": 4, "title": "article 4"}, {"id": 5, "title": "article 5"} ]

Пример

Давайте проверим вхождение значения в диапазон с помощью метода between и выведем результат:

<?php namespace App\Controller; use Doctrine\ORM\EntityManagerInterface; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; class ArticleController extends AbstractController { public function index(EntityManagerInterface $em): Response { $expr = $em->getExpressionBuilder(); $res = $expr->between('a.price', 100, 500); return new Response((string) $res); } } ?>

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

"a.price BETWEEN 100 AND 500"

Пример

Давайте выберем статьи, созданные в заданном диапазоне дат, используя метод between:

<?php namespace App\Controller; use App\Entity\Article; use Doctrine\ORM\EntityManagerInterface; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; class ArticleController extends AbstractController { public function index(EntityManagerInterface $em): Response { $from = new \DateTime('2024-01-01'); $to = new \DateTime('2024-12-31'); $qb = $em->createQueryBuilder(); $qb->select('a') ->from(Article::class, 'a') ->where($qb->expr()->between('a.createdAt', ':from', ':to')) ->setParameter('from', $from) ->setParameter('to', $to); $res = $qb->getQuery()->getResult(); return $this->json($res); } } ?>

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

[ {"id": 1, "title": "article 1", "createdAt": "2024-03-15"}, {"id": 2, "title": "article 2", "createdAt": "2024-07-20"} ]

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

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