обновить запись без изменения загруженного файла в yii - PullRequest
2 голосов
/ 27 июля 2011

КОНТРОЛЬк виду.

Я хочу, чтобы он обновлялся, даже если я не выбрал файл, чтобы в нем все еще находился текущий файл.

Ответы [ 2 ]

2 голосов
/ 27 июля 2011

В вашей модели вы можете создать сценарий правила, в котором ваше изображение требуется только при создании, например:

public function rules(){
    return array(
        array('image', 'required','on'=>array('create')),
    );
}

Кроме того, вы должны добавить if validate () перед сохранением

if(isset($_POST['Issue'])) {
    $model->attributes=$_POST['Issue'];
    $model->image=CUploadedFile::getInstance($model,'image');
    if ($model->validate()){
        if($model->save()){
            $model->image->saveAs(Yii::app()->basePath . '/../images/' . $model->image);
            $this->redirect(array('view','id'=>$model->id));
        }
    } else {    
        print_r($model->errors);
    }
}

Это поможет вам понять, откуда исходит ошибка.Очевидно, в реальной среде обработать ошибку лучше

1 голос
/ 12 апреля 2013

Контроллер:

if(isset($_POST['Propertyfeatures']))
        {


             $_POST['Propertyfeatures']['image'] = $model->image;
            // 
//           print_r($_POST['Propertyfeatures']);
//      exit;


            $model->attributes=$_POST['Propertyfeatures'];

            $uploadedFile=CUploadedFile::getInstance($model,'image');



            if($model->save())
            {

            if(!empty($uploadedFile))  // check if uploaded file is set or not
                {
                    $uploadedFile->saveAs(Yii::app()->basePath.'../../banner/'.$model->image);


                    //print_r($uploadedFile);
                    //exit();
                }

                $this->redirect(array('view','id'=>$model->p_id));
        }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...