[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