首页 > 解决方案 > yii2 beforeSave() 是否也会被调用来进行选择?

问题描述

如果我运行下面的代码,它只是从默认的 yii2 方法中简单地选择 4 个特定行,然后调用 beforeSave(),就像它是某种更新或插入一样。这种行为正常吗?

来自官方文档 该方法在插入或更新记录开始时被调用。

默认实现将在 $insert 为 true 时触发 EVENT_BEFORE_INSERT 事件,如果 $insert 为 false 则触发 EVENT_BEFORE_UPDATE 事件。

模型

class Users extends ActiveRecord implements IdentityInterface

模型内部的 beforeSave()

$this->modified = Yii::$app->formatter->asDatetime('now', 'php:Y-m-d H:i:s');

控制器方法

public function actionUsers() {
    $allOfEm = new Users();
    return array('status' => 'ok', 'users' => $allOfEm::findAll([1,2,4,5]));
}

我希望 beforeSave() 不会运行,这是怎么回事?

标签: phpyii2

解决方案


如果它可以帮助其他人显然100%是我的错,我在 afterFind() 内部有 ->save() 确实会在选择时触发,然后触发 beforeSave() 方法

@Bizley 为我指明了正确的方向


推荐阅读