I have problems to create a Doctrine Query with LIKE Expression:
QUERY:
$dql = "SELECT u FROM Users u JOIN u.group g WHERE g.name LIKE lower('ADMIN')";
$query = $em->createQuery($dql);
$result = $query->getResult();
ERROR:
QueryException: [Syntax Error] line 0, col 147: Error: Expected Doctrine\ORM\Query\Lexer::T_STRING, got 'lower'
LOWER was just an example, I need to use other functions in LIKE EXPRESSION, for example, unnacent...
How can I change Like Expression to support function on both sides?
Example: LOWER(unaccent(u.login)) LIKE LOWER(unaccent('ADMIN'))
I tested this with QueryBuilder and there doesn't seem to be a solution. The second parameter will not take a function, so I would suggest switching the parameters around:
The like string needs to have % signs. If you want something that starts with ADMIN then you would write ADMIN% if you want something that ends with ADMIN you would write %ADMIN and finally if you want it to contain ADMIN then it would be %ADMIN%.
Maybe to return a string you can use the CONCAT function of doctrine or you can do it via PHP.