2017-07-07 12:28:38 2940次浏览 9条回答 0 悬赏 10 金钱

`$model = User::find()->select('name, status')->where('user_id = 1')->one();
if($model->status == 0) {

yii::$app->getSession()->setFlash('error', '抱歉,账号已被冻结');
return $this->redirect(['index']);

}

if($model->name) {

yii::$app->getSession()->setFlash('error', '您已经设置过名字啦~');
return $this->redirect(['index']);

}

// 这句是要重新操作模型下面的就能保存name,也就是说不要select
//$model = Zhongchou::find()->where('user_id = 1')->one();

$model->name = '张三';
if(!$model->save()) {

yii::$app->getSession()->setFlash('error', '抱歉,操作失败');
return $this->redirect(['index']);

}`

补充于 2017-07-13 15:48

谢谢~~~~

  • 回答于 2017-07-07 13:59 举报

    save()后报什么错??????

    1 条回复
    回复于 2017-07-07 14:13 回复

    没报错,就是name没有保存

    觉得很赞
  • 回答于 2017-07-07 15:33 举报

    看文档,只保存被污染的属性

    觉得很赞
  • 回答于 2017-07-07 16:26 举报

    把你的查询 select('name, status') 换成 select(['name, status'])

    1 条回复
    回复于 2017-07-08 11:37 回复

    好的,晚点我试试

    觉得很赞
  • 回答于 2017-07-10 08:59 举报

    我觉得应该是你ZhongchouModel里的rules()验证的事
    保存的时候,这样写

    $model->save(false);
    
  • 回答于 2017-07-10 09:27 举报

    。。。你select是查询两个,没用中括号括起来,貌似只能选择第一个

  • 回答于 2017-07-10 10:15 举报

    $model = User::find()->select('name', 'status')->where('user_id = 1')->one();引号写错了吧

  • 回答于 2017-07-11 08:43 举报

    这是正常的。因为取出来的时候没有id字段,保存的时候默认是把主键当作条件,再update。
    正常情况下id是主键,所以没有select出id,保存是不会有效的。
    在select里面加id,应该就保存成功了。

    , 觉得很赞
  • 回答于 2017-07-11 14:26 举报

    怎么不用$model->update(['name','xxxx','xxxx']);

    2 条回复
    回复于 2017-07-11 16:39 回复

    谢谢,刚接触Yii2呢

    回复于 2017-07-11 16:46 回复

    不用谢!妹子程序员不多了。加油吧!

  • 回答于 2017-07-13 14:46 举报

    $model = Zhongchou::findOne(['user_id => 1']);

    $model->name = '张三';

    if(!$model->save()) {

    yii::$app->getSession()->setFlash('error', '抱歉,操作失败');

    return $this->redirect(['index']);

    }

    5 条回复
    回复于 2017-07-13 15:26 回复

    前面必须要select几个字段值出来的

    回复于 2017-07-13 15:38 回复

    这个就是将符合条件的一条数据查出来(包括所有字段),你可以$model->{字段}这样使用

    回复于 2017-07-13 15:41 回复

    我知道,但是我只想筛选部分字段出来,而不是所有字段呢0.0

    回复于 2017-07-13 15:46 回复

    那就只能查归查了 Zhongchou::find()->select([你需要的字段])->where(['user_id => 1'])->one();
    修改 Zhongchou::updateAll(需要修改的数组,条件数组)

    回复于 2017-07-13 15:49 回复

    谢谢~~

您需要登录后才可以回答。登录 | 立即注册
jiekii
经理

jiekii 广州客村

注册时间:2014-03-31
最后登录:2021-12-23
在线时长:42小时9分
  • 粉丝18
  • 金钱1445
  • 威望10
  • 积分1965

热门问题