您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

Yii2 ActiveRecord save()方法问题

2024/12/14 2:59:38发布29次查看
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是按照表的主键来的,如果你传入了主键就是更新,反之则是添加
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product