Yii2 从 afterSave 触发模型/记录更新

Whi*_*key 3 php activerecord yii2

在 Yii2 中保存新模型/活动记录后,我正在文件系统上安排作业。我在 afterSave 中执行此操作,并且我想使用返回的调度程序的作业 ID 更新记录。

但是当我在将正确的属性设置为作业 ID 后在模型中调用 $this->update() 时,没有发生更新。在 afterSave() 中使用 update() 可能是一个坏主意,但是解决这个问题的正确方法是什么?

Nou*_*olf 5

您可以使用 updateAttributes($attributes)

update()当不需要数据验证并且只需要更新一小部分属性时,此方法是一种快捷方式。

您可以将要更新的属性指定为名称列表或名称-值对。如果是后者,则相应的属性值将进行相应的修改。该方法然后将指定的属性保存到数据库中。

请注意,此方法不会执行数据验证,也不会 触发事件。

http://www.yiiframework.com/doc-2.0/yii-db-baseactiverecord.html#updateAttributes()-detail