Untitled
unknown
php
7 months ago
993 B
4
Indexable
private function addPatientFullNameFilter(QueryBuilder $qb, ?string $fullName): void
{
if (null !== $fullName) {
$qb->join('a.participants', 'p')
->leftJoin(
$this->getEntityManager()->getClassMetadata(Patient::class)->getName(),
'pp',
Join::WITH,
'p.id = pp.id'
)
->andWhere(
$qb->expr()->like(
'unaccent(lower(' . $qb->expr()->concat('pp.firstname', $qb->expr()->literal(' '), 'pp.lastname') . '))',
':fullName'
)
)
->setParameter('fullName', '%' . mb_strtolower($this->removeAccents($fullName)) . '%');
}
}
private function removeAccents(string $string): string
{
$normalized = \Normalizer::normalize($string, \Normalizer::FORM_D);
return preg_replace('/[\p{Mn}]/u', '', $normalized);
}Editor is loading...
Leave a Comment