php - 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() 不会运行,这是怎么回事?
解决方案
如果它可以帮助其他人显然100%是我的错,我在 afterFind() 内部有 ->save() 确实会在选择时触发,然后触发 beforeSave() 方法
@Bizley 为我指明了正确的方向
推荐阅读
- angular - 如何在 Angular 11 中观察日期?
- android - 任务“:app:checkDebugAarMetadata”执行失败(Android Studio)
- firebase - Firebase 模拟器套件管理员 SDK 和 FCM
- asp.net - SSRS ReportViewer Design 在第一页和最后一页中断,分页闪烁问题
- ruby-on-rails - 捆绑更新 Rails 解析为 6.0.1 候选版本
- python-3.x - ModuleNotFoundError:Jupyter 笔记本中没有名为“datefinder”的模块——但可以在终端中导入
- c# - C# DirectorySearcher.FindOne(); 获取 thores ArgumentOutOfRangeException
- reactjs - 如何使reducer设置状态?
- apt - dpkg-scanpackages -a amd64 。> 包 - 用 --arch arm64 写了 0 个条目
- c# - 如何使用 EntityFrameworkCore 按时创建事件