Eu não sei sobre o Symfony, mas você pode substituir
a ILIKE b
com
lower(a) LIKE lower(b)
Você também pode tentar o operador
~~* , que é sinônimo de ILIKE Ele tem precedência de operador um pouco menor, então você pode precisar de parênteses para strings concatenadas onde você não precisaria com ILIKE a ILIKE b || c
torna-se
a ~~* (b || c)
O manual sobre correspondência de padrões, começando com
LIKE / ILIKE .
Acho que esse cara teve o mesmo problema e obteve uma resposta:
https://forum.symfony-project.org/viewtopic.php?f=23&t=40424
Obviamente, você pode estender o Symfony2 com funções específicas do fornecedor SQL:
https://docs.doctrine-project.org/projects/doctrine-orm/en/2.1/cookbook/dql-user-defined-functions.html
Eu não sou fã de ORMs e frameworks massacrando a rica funcionalidade do Postgres apenas para permanecer "portátil" (o que quase nunca funciona).