Yii2 ActiveRecord save()方法问题
程序员文章站
2022-05-26 12:25:55
...
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
是按照表的主键来的,如果你传入了主键就是更新,反之则是添加
上一篇: 通过vue.js使用axios实现下载功能(详细教程)
下一篇: PHP判断是否有Get参数的方法
推荐阅读
-
记录Yii2框架开发微信公众号遇到的问题及解决方法
-
解决JPA save()方法null值覆盖掉mysql预设的默认值问题
-
解决yii2左侧菜单子级无法高亮问题的方法
-
yii2 添加城市功能save()问题
-
解决yii2左侧菜单子级无法高亮问题的方法,yii2菜单子
-
Yii2 ActiveRecord save()方法问题
-
解决yii2左侧菜单子级无法高亮问题的方法_PHP
-
如何用yii2 ActiveRecord在处理mysql所有表insert的时候,实现默认主键为uuid的简便方法吗?
-
解决yii2左侧菜单子级无法高亮问题的方法,yii2菜单子_PHP教程
-
解决yii2左侧菜单子级无法高亮问题的方法_PHP