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

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

Метод concat класса Expr выполняет конкатенацию строк в DQL-запросах Doctrine. Он принимает два и более аргументов и объединяет их в одну строку. Метод возвращает объект Expr, который можно использовать в дальнейшем построении запроса.

Синтаксис

$expr->concat(string $arg1, string $arg2, ...)

Пример

Давайте создадим QueryBuilder и выполним конкатенацию двух полей:

<?php namespace App\Repository; use App\Entity\Article; use Doctrine\ORM\EntityRepository; use Doctrine\ORM\QueryBuilder; class ArticleRepository extends EntityRepository { public function findConcatenated(): array { $qb = $this->createQueryBuilder('a'); $expr = $qb->expr(); $qb->select($expr->concat('a.title', 'a.text')) ->from(Article::class, 'a'); return $qb->getQuery()->getResult(); } } ?>

Пример

Давайте добавим разделитель между строками:

<?php namespace App\Repository; use App\Entity\Article; use Doctrine\ORM\EntityRepository; class ArticleRepository extends EntityRepository { public function findWithSeparator(): array { $qb = $this->createQueryBuilder('a'); $expr = $qb->expr(); $qb->select($expr->concat('a.title', ':separator', 'a.text')) ->setParameter('separator', ' - ') ->from(Article::class, 'a'); return $qb->getQuery()->getResult(); } } ?>

Пример

Давайте используем метод concat в условии where:

<?php namespace App\Repository; use App\Entity\Article; use Doctrine\ORM\EntityRepository; class ArticleRepository extends EntityRepository { public function findByFullName(string $value): array { $qb = $this->createQueryBuilder('a'); $expr = $qb->expr(); $qb->select('a') ->from(Article::class, 'a') ->where($expr->concat('a.title', 'a.text') . ' LIKE :value') ->setParameter('value', '%' . $value . '%'); return $qb->getQuery()->getResult(); } } ?>

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

[["title" => "article", "text" => "hello"]]

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

  • класс Expr,
    который строит выражения для DQL-запросов
  • метод like,
    который выполняет поиск по шаблону
  • метод lower,
    который переводит строку в нижний регистр
  • метод trim,
    который удаляет пробелы по краям строки
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить