Метод max класса Expr
Метод max класса Expr возвращает
наибольшее значение среди переданных ему
аргументов. В качестве аргументов выступают
SQL-выражения, созданные другими методами
класса Expr или переданные как строки.
Метод удобно применять в DQL-запросах
для вычисления максимума из нескольких
значений или полей.
Синтаксис
$expr->max($arg1, $arg2, ...)
Пример
Давайте создадим запрос, который вернёт максимум из двух числовых значений:
<?php
namespace AppRepository;
use DoctrineORMEntityRepository;
use DoctrineORMQueryExpr;
class ArticleRepository extends EntityRepository
{
public function findMaxValue(): int
{
$expr = new Expr();
$qb = $this->createQueryBuilder('a');
$qb->select($expr->max('10', '25'));
return (int) $qb->getQuery()->getSingleScalarResult();
}
}
?>
Результат выполнения кода:
25
Пример
Давайте вернём максимум среди значений полей сущности:
<?php
namespace AppRepository;
use DoctrineORMEntityRepository;
use DoctrineORMQueryExpr;
class ArticleRepository extends EntityRepository
{
public function findMaxField(): int
{
$expr = new Expr();
$qb = $this->createQueryBuilder('a');
$qb->select($expr->max('a.id', 'a.count'));
return (int) $qb->getQuery()->getSingleScalarResult();
}
}
?>
Результат выполнения кода для записи с id равным 5
и count равным 12:
12