Метод gt класса Expr
Метод gt класса Expr создаёт выражение сравнения
«больше» (greater than). Он принимает два параметра: имя поля
и значение, с которым сравнивается поле. Метод возвращает
объект Comparison, который можно передать в метод
where QueryBuilder. Обычно используется для фильтрации
записей по числовым значениям или датам.
Синтаксис
public function gt(string $field, mixed $value): Comparison
Пример
Давайте выберем статьи, у которых поле integer больше 3:
<?php
namespace App\Repository;
use App\Entity\Article;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\ORM\Query\Expr;
use Doctrine\Persistence\ManagerRegistry;
class ArticleRepository extends ServiceEntityRepository
{
public function __construct(ManagerRegistry $registry)
{
parent::__construct($registry, Article::class);
}
public function findGreaterThan(): array
{
$expr = new Expr();
$qb = $this->createQueryBuilder('a');
$qb->where($expr->gt('a.integer', 3));
return $qb->getQuery()->getResult();
}
}
?>
Результат выполнения кода:
[Article { id: 4, integer: 4 }, Article { id: 5, integer: 5 }]
Пример
Давайте сравним дату datetime с текущим моментом:
<?php
namespace App\Repository;
use App\Entity\Article;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\ORM\Query\Expr;
use Doctrine\Persistence\ManagerRegistry;
class ArticleRepository extends ServiceEntityRepository
{
public function __construct(ManagerRegistry $registry)
{
parent::__construct($registry, Article::class);
}
public function findFuture(): array
{
$expr = new Expr();
$qb = $this->createQueryBuilder('a');
$qb->where($expr->gt('a.datetime', new \DateTime()));
return $qb->getQuery()->getResult();
}
}
?>
Результат выполнения кода:
[Article { id: 1, datetime: 2026-01-01 00:00:00 }]