Метод lte класса Expr
Метод lte класса Expr создаёт выражение сравнения "меньше или равно" (less than or equal). Он принимает два параметра: имя поля и значение для сравнения. Результат работы метода можно использовать в методах where, andWhere и orWhere класса QueryBuilder.
Синтаксис
public function lte(string $field, mixed $value): Comparison
Пример
Давайте выберем статьи, у которых поле id меньше или равно 3:
<?php
namespace App\Repository;
use App\Entity\Article;
use Doctrine\ORM\EntityRepository;
use Doctrine\ORM\QueryBuilder;
class ArticleRepository extends EntityRepository
{
public function findByIdLte(int $value): array
{
$qb = $this->createQueryBuilder('a');
$qb->where($qb->expr()->lte('a.id', ':value'))
->setParameter('value', $value);
return $qb->getQuery()->getResult();
}
}
?>
Результат выполнения кода для значения 3:
[Article { id: 1 }, Article { id: 2 }, Article { id: 3 }]
Пример
Давайте выберем статьи, у которых дата создания меньше или равна указанной:
<?php
namespace App\Repository;
use App\Entity\Article;
use Doctrine\ORM\EntityRepository;
use DateTime;
class ArticleRepository extends EntityRepository
{
public function findByCreatedAtLte(DateTime $date): array
{
$qb = $this->createQueryBuilder('a');
$qb->where($qb->expr()->lte('a.createdAt', ':date'))
->setParameter('date', $date);
return $qb->getQuery()->getResult();
}
}
?>
Результат выполнения кода для даты 2024-01-01:
[Article { id: 1, createdAt: "2023-12-15" }, Article { id: 2, createdAt: "2023-12-31" }]
Пример
Давайте скомбинируем условие "меньше или равно" с другим условием через andWhere:
<?php
namespace App\Repository;
use App\Entity\Article;
use Doctrine\ORM\EntityRepository;
class ArticleRepository extends EntityRepository
{
public function findPublishedWithIdLte(int $value): array
{
$qb = $this->createQueryBuilder('a');
$qb->where($qb->expr()->lte('a.id', ':value'))
->andWhere($qb->expr()->eq('a.published', ':published'))
->setParameter('value', $value)
->setParameter('published', true);
return $qb->getQuery()->getResult();
}
}
?>
Результат выполнения кода для значения 5:
[Article { id: 1, published: true }, Article { id: 3, published: true }]