Не Записывать Поле В Бд?

Контроллер


	public function actionCreate()

	{

		$model=new Film;

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

		{

            $model->setScenario('create');

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

			$model->created=date('Y-m-d');

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

            

          	if($model->save()){

                //$filename = md5(time().uniqid()).'.jpg';

                $model->image->saveAs('images/poster/'.$model->id.'.jpg');

				$this->redirect(array('index'));

			}

		}

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

			'model'=>$model,

		));

	}

Кусок из представления:


echo $form->labelEx($model, 'image');

echo $form->fileField($model, 'image');

echo $form->error($model, 'image');

Пропала надобность записывать имя файла в бд, так как сделал его равным ид записи. Как исключить $model->image из $model->save()?

А в какой строке он устанавливается? Если через mass-assigment то объяви в rules поле как unsafe

Прописал в рулес array(‘image’,‘unsafe’), вообще убирал image из правил, один хрен записывает

Для textField прокатило бы, но для fileField не работает

Ну тогда устанавливайте значение поля вручную в пустую строку, перед сохранением модели… Хотя IMHO это плохая идея отказываться от имени файла. как минимум разрешение иногда может быть разным у файлов, может в будущем переместите часть файлов в другую папку, мало ли чего.

а смысл пустую переменную сохранять? Я вообще хочу избавиться от колонки. Разрешено сохранять только .jpg, 1 файл на запись, так что проблем не возникнет. Просто так для update проще, не нужно делать проверку на существование файла, удалять его, сохранять новый, просто заменил и все

Тогда уберите поле из базы, а в модель объявите его как публичное. и не будет никуда писаться.