Метод gte класса Expr
Метод gte класса Expr создаёт условие
"больше или равно" для поля в запросе Doctrine.
Первым параметром передаётся имя поля, вторым -
значение для сравнения. Если поле больше или равно
значению, условие выполняется.
Синтаксис
Expr::gte(string $field, mixed $value)
Пример
Давайте найдём статьи, у которых поле views
больше или равно 100:
<?php
namespace AppRepository;
use AppEntityArticle;
use DoctrineBundleDoctrineBundleRepositoryServiceEntityRepository;
use DoctrinePersistenceManagerRegistry;
use DoctrineORMQueryExpr;
class ArticleRepository extends ServiceEntityRepository
{
public function __construct(ManagerRegistry $registry)
{
parent::__construct($registry, Article::class);
}
public function findPopular(): array
{
$qb = $this->createQueryBuilder('a');
$qb->where($qb->expr()->gte('a.views', 100));
return $qb->getQuery()->getResult();
}
}
?>
Результат выполнения кода:
["article 1", "article 2", "article 3"]
Пример
Давайте найдём пользователей, у которых поле
age больше или равно 18, используя
класс Expr напрямую:
<?php
namespace AppRepository;
use AppEntityUser;
use DoctrineBundleDoctrineBundleRepositoryServiceEntityRepository;
use DoctrinePersistenceManagerRegistry;
use DoctrineORMQueryExpr;
class UserRepository extends ServiceEntityRepository
{
public function __construct(ManagerRegistry $registry)
{
parent::__construct($registry, User::class);
}
public function findAdults(): array
{
$expr = new Expr();
$qb = $this->createQueryBuilder('u');
$qb->where($expr->gte('u.age', 18));
return $qb->getQuery()->getResult();
}
}
?>
Результат выполнения кода:
["user 1", "user 2", "user 3"]