Symfony3でSoftDeleteableを一時的に無効にする

Symfony3にはSoftDeleteableという論理削除機能があります。指定したフィールドがnullで削除していないとし、nullでなければ削除したとして扱ってくれますので、オペレーションミスによってデータが消えても復元可能にできるわけです。

ただし、管理者側ではデータを完全削除したい場合があります。この時だけはSoftDeleteableを無効にして論理的に削除されているレコードも表示して選択的に削除させたいです。

Symfony3はこういったケースにも対応することができます。

$em = $this->getDoctrine()->getManager();
$em->getFilters()->disable('softdeleteable');
$itemRepository = $this->getDoctrine()->getRepository('AppBundle:Item');
$items = $itemRepository->getItem($tag);

最初このdisableの所にsoft-deleteableって書いたら以下のようなエラーが出てしまいました。

{"code":500,"message":"Filter 'soft-deleteable' is not enabled."}

Symfony2の時の書き方なのかな?以下のページのおかげで助かりました。
https://github.com/Atlantic18/DoctrineExtensions/issues/1159

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA