4

Sonata (Symfony2 Bundle http://sonata-project.org/about ) で管理パネルを作成し、preRemove フック (Doctrine) にイベントを追加しました。

簡単に言えば、レコードを削除するときに、他のサービスに対してカールを実行します。すべてが機能します。

しかし、ソナタには「バッチ操作」もあり、複数の行を選択して「選択したすべてを削除」を選択できます。

しかし、「選択したものをすべて削除」を選択すると、カールは開始されませんでした。preRemove フック (Doctrine) は呼び出されません。

私を助けてくれる人がいますか?

ありがとう

4

2 に答える 2

2

バッチ削除アクションは、メソッドの呼び出しを実際に回避しているようpreRemoveです(Sonata\AdminBundle\Controller\CRUDController::batchActionDeletewhich callsを参照Sonata\DoctrineORMAdminBundle\Model\ModelManager::batchDelete)。

ただし、次のオプションがあります。

  1. batchActionDeleteカスタムコントローラーの拡張を使用してそれをオーバーライドしCRUDControllerます。 SonataMediaBundle がそれを行います。
  2. 実際のドクトリン イベントを登録する (非推奨) ( Symfony クックブック チュートリアル)
于 2013-09-10T19:24:45.783 に答える