Метод trim класса Expr
Метод trim класса Expr создаёт выражение,
которое удаляет пробельные символы (пробелы, табы, переводы
строк) в начале и конце указанной строки. Он принимает один
параметр - строку или выражение, которое нужно обработать.
Метод часто используется в QueryBuilder для очистки
значений перед сравнением или выборкой.
Синтаксис
$expr->trim($string)
Пример
Давайте создадим простое выражение, которое обрезает
пробелы вокруг строки ' hello ':
<?php
namespace AppController;
use DoctrineORMEntityManagerInterface;
use DoctrineORMQueryExpr;
class ArticleController
{
public function index(EntityManagerInterface $em)
{
$expr = new Expr();
$res = $expr->trim(' hello ');
echo $res;
}
}
?>
Результат выполнения кода:
"TRIM(' hello ')"
Пример
Давайте используем метод trim в запросе
QueryBuilder для поиска статьи с обрезанным
названием:
<?php
namespace AppRepository;
use AppEntityArticle;
use DoctrineBundleDoctrineBundleRepositoryServiceEntityRepository;
use DoctrinePersistenceManagerRegistry;
class ArticleRepository extends ServiceEntityRepository
{
public function __construct(ManagerRegistry $registry)
{
parent::__construct($registry, Article::class);
}
public function findByTrimmedTitle(string $title): array
{
$qb = $this->createQueryBuilder('a');
$qb->where(
$qb->expr()->eq(
$qb->expr()->trim('a.title'),
$qb->expr()->literal($title)
)
);
return $qb->getQuery()->getResult();
}
}
?>
Результат выполнения кода для названия ' article ':
["article 1", "article 2", "article 3"]