Je ne connais pas Symfony, mais vous pouvez remplacer
a ILIKE b
avec
lower(a) LIKE lower(b)
Vous pouvez également essayer l'opérateur ~~*
, qui est synonyme de ILIKE
Il a une priorité d'opérateur légèrement inférieure, vous pourriez donc avoir besoin de parenthèses pour les chaînes concaténées là où vous ne le feriez pas avec ILIKE
a ILIKE b || c
devient
a ~~* (b || c)
Le manuel sur le pattern matching, commençant par LIKE
/ ILIKE
.
Je pense que ce type a eu le même problème et a obtenu une réponse :
http://forum.symfony-project.org/viewtopic.php?f=23&t=40424
Évidemment, vous pouvez étendre Symfony2 avec des fonctions spécifiques au fournisseur SQL :
http://docs.doctrine-project.org/projects/doctrine-orm/en/2.1/cookbook/dql-user-defined-functions.html
Je ne suis pas un fan des ORM et des frameworks massacrant les riches fonctionnalités de Postgres juste pour rester "portable" (ce qui ne fonctionne presque jamais).