私はこれを多く研究しましたが、答えは「いいえ」ですが、私は間違っていることを証明したいと思います。Doctrine 2.xでREGEXPを使用するORM
REGEXP操作を含むDQLで書かれたクエリを実行したいと思います。 -
select * from assets
where campaign_id = 1
and fileName REGEXP 'godzilla*'
order by fileName desc
(私の本当の正規表現式はより複雑である。これは、単純な正規表現であり、私が好きなように行うことができる実現するが、それは単なる例です)
$builder->add('select', 'a.fileName')
->add('from', '\Company\Bundle\Entity\Asset a')
->add('where', 'a.campaign=1')
->...REGEXP MAGIC...
->add('orderBy', 'a.fileName desc');
通称:たとえば、
私はDoctrine \ ORM \ Query \ ExprクラスとQueryBuilderクラスについて調べました。私はREGEXPをサポートしていません。 SO上の誰かが、Exprクラスを使用していると言う投稿がありますが、実際には動作しません(テストされていません)。
DQLでREGEXPを実行する方法はありますか? TIA。
バートリンク、それはもはや最新のものではないのですか(教義1)? –
@PetterSoderlund fixed –
注意すべきことは、REGEXPの最後に比較演算子を追加する必要があります。そうしないと、Doctrineはそれを戻します。 Doctrineは、REGEXPがそれを必要としなくても、すべてのwhere節に比較演算子を持たせる必要があります – Patrick