我想检测是否在 afterSave() 中插入了新记录或更新了旧记录,但我不知道如何。
我曾考虑在 beforeSave() 中编写一个配置变量(如果未设置 id,我可以在其中检测到插入)但也许这不是一种安全的方法。
有任何想法吗?
我想检测是否在 afterSave() 中插入了新记录或更新了旧记录,但我不知道如何。
我曾考虑在 beforeSave() 中编写一个配置变量(如果未设置 id,我可以在其中检测到插入)但也许这不是一种安全的方法。
有任何想法吗?
您可以使用afterSave( $model, $created )函数来完成。
因为,该函数的第二个参数afterSave()
是Boolean
并且true
如果创建了一个新行,它将为您提供false
.
您可以通过在此处编写以下代码行来检查这一点:
public function afterSave(Event $event, Entity $entity, array $options) {
if ($entity->isNew()) {
// do whatever you need to do here.
}
}
传递 id(当记录更新时)并在 saveall 或 save 之后立即保存它也可以提供帮助。例如; $this->set('id', $this->MyModule->id);