2015-03-13 4 views
0

Я хотел бы загрузить изображение и сохранить имя изображения в базе данных. Я могу создать его, и все в порядке, но обновление имеет проблемы. Если я обновляю значение $ model-> img (image), оно будет пустым в db. Это моя модель правила:Не удается обновить изображение в проекте yii

  array('img', 'file','types'=>'jpg, gif, png, jpeg', 'allowEmpty'=>true, 'on'=>'update'), 
      array('title, img', 'length', 'max'=>255, 'on'=>'insert,update'), 

И это контроллер:

public function actionUpdate($id) 
    { 
     $model=$this->loadModel($id); 
       $_SESSION['KCFINDER']['disabled'] = false; 
       $_SESSION['KCFINDER']['uploadURL'] = Yii::app()->baseUrl."/../images/"; // URL for the uploads folder 
       $_SESSION['KCFINDER']['uploadDir'] = Yii::app()->basePath."/../../images/"; // path to the uploads folder 
     // $this->performAjaxValidation($model); 
     if(isset($_POST['News'])) 
     { 
        $_POST['News']['img'] = $model->img; 
        $model->attributes=$_POST['News']; 
        $model->img = $_POST['News']['img']; 
         $uploadedFile=CUploadedFile::getInstance($model,'img'); 

      if($model->save()){ 
          if(!empty($uploadedFile)) 
          { 
            $uploadedFile->saveAs(Yii::app()->basePath.'/../../images/'.$model->img); 
          } 
         } 
       $this->redirect(array('view','id'=>$model->id)); 
     } 

     $this->render('update',array(
      'model'=>$model, 
     )); 
    } 

Перед сохранений я проверить $ модели-> IMG и имеет значение. Так что я думаю, что что-то не так с save() в обновлении.

ответ

0

$_POST['News']['img'] = $model->img; Почему вы это сделали? Вы должны удалить эту строку.

$model->attributes=$_POST['News']; 
$model->img = $_POST['News']['img']; 
+0

Ty ответ. Это не работает. Если я удалю эту строку, результат не будет прекрасным. Вам нужен еще код? –

Смежные вопросы