当我保存数据时,保存的数据但在afterSave
功能之后无法正常工作。
如何运作,任何人都能详细解释一下吗?
在控制器中,
$Product = $this->Products->newEntity();
$this->Products->save($ProductsEntity, array('callbacks'=>false));
在模型中,
public function afterSave(Event $event, EntityInterface $entity, ArrayObject $options)
{
...Function not called
}
但它不起作用...... !!
答案 0 :(得分:3)
确保将afterSave
方法添加到Table
课程,而不是Entity
课程。
此外,$ProductsEntity
来自哪里,array('callbacks'=>false)
是什么?没有这样的选择,如果有它可能会与你想要的完全相反。
请参阅此处的可用选项:
https://api.cakephp.org/3.1/class-Cake.ORM.Table.html#_save
还要注意这一个:
如果在保存实体时没有对实体进行任何更改,则回调 不会开火,因为没有进行保存。
希望这有帮助。
答案 1 :(得分:1)
afterSave事件正常工作后,您只需创建afterSave
的函数并包含(使用)相关类,
afterSave(Event $event, EntityInterface $entity, ArrayObject $options)
并加入Event
,EntityInterface
和ArrayObject
classe,
以下是文档:https://book.cakephp.org/3.0/en/orm/table-objects.html#aftersave,请仔细检查并实施。