Ho fatto ricerche su questo argomento e sono sicuro che la risposta è no, ma mi piacerebbe provare che si è rivelato sbagliato.Utilizzo di REGEXP in Doctrine 2.x ORM
Mi piacerebbe eseguire una query scritta in DQL che contiene l'operazione REGEXP. Per esempio:
select * from assets
where campaign_id = 1
and fileName REGEXP 'godzilla*'
order by fileName desc
alias
$builder->add('select', 'a.fileName')
->add('from', '\Company\Bundle\Entity\Asset a')
->add('where', 'a.campaign=1')
->...REGEXP MAGIC...
->add('orderBy', 'a.fileName desc');
(Questo è un semplice regex e mi rendo conto che potrebbe essere fatto come piace, ma è solo un esempio - la mia espressione vera espressione regolare è più complicato)
Ho esaminato la classe Doctrine \ ORM \ Query \ Expr, più la classe QueryBuilder. Non vedo alcun supporto per REGEXP. Qualcuno su SO ha un post che dice che hanno usato la classe Expr, ma questo in realtà non funziona (hanno dichiarato che non è stato testato).
Qualche idea su come eseguire REGEXP in DQL senza scrivere direttamente SQL? TIA.
cattivo collegamento sul blogpost , non è più aggiornato (doctrine1)? –
@PetterSoderlund corretto –
Una cosa da notare: è necessario aggiungere un operatore di confronto alla fine del REGEXP, altrimenti Doctrine lo respingerà. Doctrine richiede che tutte le clausole where abbiano un operatore di confronto anche se REGEXP non lo richiede – Patrick