4

我想检测是否在 afterSave() 中插入了新记录或更新了旧记录,但我不知道如何。

我曾考虑在 beforeSave() 中编写一个配置变量(如果未设置 id,我可以在其中检测到插入)但也许这不是一种安全的方法。

有任何想法吗?

4

3 回答 3

8

您可以使用afterSave( $model, $created )函数来完成。

因为,该函数的第二个参数afterSave()Boolean并且true如果创建了一个新行,它将为您提供false.

于 2012-09-06T19:41:10.077 回答
2

您可以通过在此处编写以下代码行来检查这一点:

public function afterSave(Event $event, Entity $entity, array $options) {
    if ($entity->isNew()) {
        // do whatever you need to do here.
    }
}
于 2017-03-28T10:41:26.023 回答
0

传递 id(当记录更新时)并在 saveall 或 save 之后立即保存它也可以提供帮助。例如; $this->set('id', $this->MyModule->id);

于 2013-05-23T13:06:07.307 回答