Great solution from @Liutas!
If you want to use your concat as a workaround to search for multiple fields, you can use this code:
public function getFullTextFilter($queryBuilder, $alias, $field, $value)
{
if (!$value['value']) {
return;
}
$queryBuilder->andWhere($queryBuilder->expr()->orX(
$queryBuilder->expr()->like($alias.'.name', $queryBuilder->expr()->literal('%' . $value['value'] . '%')),
$queryBuilder->expr()->like($alias.'.description', $queryBuilder->expr()->literal('%' . $value['value'] . '%')),
$queryBuilder->expr()->like($alias.'.anotherfield', $queryBuilder->expr()->literal('%' . $value['value'] . '%'))
));
return true;
}
source
share