Investigué mucho sobre esto y estoy seguro de que la respuesta es no, pero me encantaría probar que no.Uso de REGEXP en Doctrine 2.x ORM
Me gustaría ejecutar una consulta escrita en DQL que contiene la operación REGEXP. Por ejemplo:
select * from assets
where campaign_id = 1
and fileName REGEXP 'godzilla*'
order by fileName desc
aka
$builder->add('select', 'a.fileName')
->add('from', '\Company\Bundle\Entity\Asset a')
->add('where', 'a.campaign=1')
->...REGEXP MAGIC...
->add('orderBy', 'a.fileName desc');
(Esta es una expresión regular simple y me doy cuenta de que se podría hacer como quiera, pero es sólo un ejemplo - mi expresión verdadera expresión regular es más complicado)
He examinado la clase Doctrine \ ORM \ Query \ Expr, más la clase QueryBuilder. No veo soporte para REGEXP. Alguien en SO tiene una publicación que dice que usaron la clase Expr, pero esto en realidad no funciona (declararon que no se había probado).
¿Alguna idea de cómo ejecutar REGEXP en DQL sin escribir SQL directamente? TIA.
enlace Bad, en la entrada de blog , ¿ya no está actualizado (doctrina1)? –
@PetterSoderlund corregido –
Una cosa a tener en cuenta: tiene que agregar un operador de comparación al final de REGEXP o de lo contrario, Doctrine lo rechazará. Doctrine requiere que todas las cláusulas tengan un operador de comparación aunque REGEXP no lo requiera – Patrick