Загрузка файлов в Update

Здравствуйте, уважаемые форумчане.

Я относительно недолго работаю с Yii и меня возникли некоторые вопросы в некоторых простых вещах.

Я сейчас реализую загрузку картинки.

Я добавляю новость и даю возможность загрузить одну картинку к ней.

С добавлением все нормально, картинка загружается в паку нужную, в базу имя файла записывается.

С удалением тоже все хорошо, картинка тоже удаляется. Но возникла трудность с апдейтом.

Получается в апдейте мне не обязательно загружать картинку, но если этого не делать то форма ругается что поле Image не должно быть пустым, хоть в правилах указано:


	public function rules()

	{	

		return array(

                        array('image', 'file', 'types'=>'jpg, gif, png'),

			array('title, description, status', 'required'),

			array('status', 'numerical', 'integerOnly'=>true),

			array('title', 'length', 'max'=>255),			

			array('id, title, description, status', 'safe', 'on'=>'search'),           

		);

	}

И потом, после апдейта, новая картинка загружается, но старая не удаляется и в базу пишется пустое значение.

Вот код апдейта:


public function actionUpdate($id)

	{

		$model=$this->loadModel($id);


		if(isset($_POST['News']))

		{

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

                                                  

                        if($model->save())

                        {

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

                                if ($image)

                                {   

                                    $newPath = dirname(Yii::app()->basePath).'/images/'.$model->id.'-'.$image->name;

                                    $oldfilename = dirname(Yii::app()->basePath).'/images/'.$model->id.'-'.$model->image;

                                       if (file_exists($oldfilename))

                                           unlink($oldfilename);                                        

                                    

                                    $image->saveAs($newPath);                                

                                }    

                                $this->redirect(array('view','id'=>$model->id));

                        }

				

		}


		$this->render('update',array(

			'model'=>$model,

		));

	}

Заранее спасибо.

в модели в rules нужно написать так


array('image', 'file', 'types'=>'jpg, gif, png', 'allowEmpty' => true),

Да, спасибо, это дало возможность не вставлять новую картинку, но в базу все еще записывается пустое значение.

Сделайте проверку, что если в $_POST[‘News’][‘image’](или как оно у вас называется) пусто, тогда unset $_POST[‘New’][‘image’]

Спасибо большое, получилось)


public function actionUpdate($id)

	{

		$model=$this->loadModel($id);


		if(isset($_POST['News']))

		{

                        if ($_POST['News']['image']=='')

                            unset($_POST['News']['image']);

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

                        //if ($model->attributes->image='')                          

                        if($model->save())

.........................