rt,之前一直以为 activerecord->save 方法 可以当数据不存在时 insert,存在时update,后来在中文官网上看到了这段文档:
// 新建一条记录 $model = new Customer; if ($model->load(Yii::$app->request->post()) && $model->save()) { // 获取用户输入的数据,验证并保存 } // 更新主键为$id的AR $model = Customer::findOne($id); if ($model === null) { throw new NotFoundHttpException; } if ($model->load(Yii::$app->request->post()) && $model->save()) { // 获取用户输入的数据,验证并保存 }
按照这个逻辑,我现在如果想更新id = 100这条数据信息,如果数据表中没有这条记录,那么$model === null,如此一来,还得先判断,如果为空,实例化一个 $model,然后:
$model = new Customer(); $model->id = 100; .....
感觉这样不够优雅,还是说我对ActiveRecord的理解有问题?
rt,之前一直以为 activerecord->save 方法 可以当数据不存在时 insert,存在时update,后来在中文官网上看到了这段文档:
// 新建一条记录 $model = new Customer; if ($model->load(Yii::$app->request->post()) && $model->save()) { // 获取用户输入的数据,验证并保存 } // 更新主键为$id的AR $model = Customer::findOne($id); if ($model === null) { throw new NotFoundHttpException; } if ($model->load(Yii::$app->request->post()) && $model->save()) { // 获取用户输入的数据,验证并保存 }
按照这个逻辑,我现在如果想更新id = 100这条数据信息,如果数据表中没有这条记录,那么$model === null,如此一来,还得先判断,如果为空,实例化一个 $model,然后:
$model = new Customer(); $model->id = 100; .....
感觉这样不够优雅,还是说我对ActiveRecord的理解有问题?
Yii中文官网答案
save是按照表的主键来的,如果你传入了主键就是更新,反之则是添加
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号