2015-08-19 15:35:40 2274次浏览 1条回答 0 悬赏 10 金钱

控制器修改方法内容:

$pics = UploadedFile::getInstance($model, 'pic');

  $picq = $model->pic;
  if(!empty($pics)){
     $model->pic = $pics;
  }else{
     $model->pic = $picq;
  }
  if ($model->pic && $model->validate()){
      $model->pic->saveAs( '../../files/'. $model->pic->baseName . '.' . $model->pic->extension);
  }
  if($model->save()){
      return $this->succ();
  }

修改的时候,如果图片重新选择了,是可以存储的。不过修改的时候,不选择,他就会报错
报Call to a member function saveAs() on a non-object这个错误。哪位大神帮忙解决一下

  • 回答于 2015-08-19 16:14 举报

    供参考,或者坐等更好的办法~

    	    $model = $this->findModel($id);
    	    $model->pic = UploadedFile::getInstance($model, 'pic');
                if($model->pic) {
                    $filename = $dir . time() . rand(10000, 99999) . '.' . $model->pic->extension;
                    $model->pic->saveAs($filename);
                    $model->pic = $filename;
                }else{
                    //如果没有上传,使用原来的
                    $model->pic=$old_model->pic;
                }
                $model->save();
    
    1 条回复
    回复于 2015-08-19 16:27 回复

    我自己搞定了,if($pics !='' && $model->validate()){

                    $model->pic->saveAs('../../files/'.$model->pic->baseName.'.'.$model->pic->extension);
                }if里面加了个不为空
    
您需要登录后才可以回答。登录 | 立即注册
辰枫夜雨
助理

辰枫夜雨

注册时间:2015-08-11
最后登录:2017-06-23
在线时长:18小时59分
  • 粉丝10
  • 金钱0
  • 威望0
  • 积分180

热门问题