[Symfony] SoftDeleteの論理削除でハマった

by unosk on 2011-05-24 15:12

久々の投稿です。

Symfony1.4での話です。
現在進行中のプロジェクトでSymfonyがよさげだったので導入してみたんですが、SoftDeleteビヘイビアでの論理削除で見事にハマった。

AdminGeneratorで作成した管理画面からアイテムを削除するとdeleted_atにはきちんと削除日時が保存されるけど、一覧画面では削除したはずのアイテムも表示されてしまう。。。

ググっても原因はわからなかったのでソースを読んでみる。すると、こんな関数を発見。

Doctrine_Template_Listener_SoftDelete->preDqlSelect

雰囲気からするとSelect実行時のSQL生成前にフックしてるようだ。
そこでログを仕込んで見ると、この関数が呼ばれていないことが判明!!原因はきっとこいつに違いない!

さっそくこの関数名でググってみると、Doctrine::ATTR_USE_DQL_CALLBACKSというを設定を有効にしてやらなきゃいけないようだ。
ということで見つけた参考記事をもとに修正。

無事正しく実行されました。

No related posts.

Leave your comment

Required.

Required. Not published.

If you have one.