2017-04-20 2 views
1

私はデータを保存していて、保存されたデータはそのあとafterSaveの機能は動作しません。 どのように動作する、誰も詳細に説明できますか?CakePHPへのafterSaveの完全なプロセスを実装する方法3.1.13

コントローラで

モデルで
$Product = $this->Products->newEntity(); 
$this->Products->save($ProductsEntity, array('callbacks'=>false)); 

public function afterSave(Event $event, EntityInterface $entity, ArrayObject $options) 
{ 
    ...Function not called 
} 

しかし、それは動作しません...!

答えて

1

afterSaveイベント、あなただけのafterSaveの関数を作成しなければならず、(使用)に関連するクラス、

afterSave(Event $event, EntityInterface $entity, ArrayObject $options)

EventEntityInterfaceArrayObjectクラッセが含まれるが含まれ、ここで

はドキュメントです:https://book.cakephp.org/3.0/en/orm/table-objects.html#aftersave、正しく検討して実装してください。

3

Entityクラスではなく、TableクラスにafterSaveメソッドを追加してください。

また、$ProductsEntityは、約array('callbacks'=>false)となりますか?このようなオプションはありません。もしあれば、おそらくあなたが望むものと正反対のことをするでしょう。

ここで使用可能なオプションを参照してください:それは保存されたときに変更がエンティティに行われない場合は、コールバック はありません保存するので発生しません

:この1点に注意してください。また
https://api.cakephp.org/3.1/class-Cake.ORM.Table.html#_save

をは発表された。

これが役に立ちます。正常に動作し

+1

ありがとうございました!あなたの提案はより有用です。 –

関連する問題