Yii2通过AR模型获取制定字段后更新保存失败,但是又没有错误 [ 2.0 版本 ]
如下所示代码:
// 获取user的所有字段
$model = User::findOne(Yii::$app->getUser()->getIdentity()->getId());
$model->head_image = UploadedFile::getInstance($model, 'head_image');
$file = Yii::$app->params['uploadImagePath'] . Yii::$app->security->generateRandomString(64) . '.' . $model->head_image->extension;
// 保存文件
$model->head_image->saveAs($file);
$model->head_image = $file;
if ($model->update()){
return '头像更新成功!';
}
return '文件保存成功!' . Json::encode($model->errors);
这时$model->update()
成功,数据库数据更新成功。
但是当 _$model = User::find()->select('username,head_image')->where(['userid' => Yii::$app->getUser()->getIdentity()->getId()])->one();_
这样获取数据时,_$model->update()_
失败,且数据库数据没有更新。
我又使用_$model = User::find()->select('*')->where(['userid' => Yii::$app->getUser()->getIdentity()->getId()])->one();_
获取数据时,_$model->update()_
也是成功的,且数据库数据更新成功。
我又将两种获取得到的数据模型打印出来做了比较,除了数据条数不同内容都是一样的。
劳烦朋友指教。
最佳答案
-
select('id,username,headimage')试试
共 1 条回复jianghaifm 回复于 2016-10-17 10:59 回复正解,可以了,看来是更新时条件的问题,理解不够深,多谢提醒
jianghaifm
注册时间:2015-12-26
最后登录:2017-05-25
在线时长:4小时17分
最后登录:2017-05-25
在线时长:4小时17分
- 粉丝1
- 金钱50
- 威望0
- 积分90