Динамическое Правило Для Поля

При добавлении записи нужно сделать обязательное поле для сохранения файла и не обязательное при редактировании

Так в чем проблема? Делайте, если надо.

Делать нужно самому. Такого в yii нет.

Что-то вот такое:




public function rules()

	{		

	return array(

        array('myfield','myvalidation')

....

}

public function myvalidation()

{

  if (!isset($this->myfield)

    $this->addError('myfield','Myfield is required field')

}



Ну или можно более элегантно с использованием сценариев:




public function rules()

	{		

	return array(

        array('myfield','required', 'on'=>'add_scenario')

....

}



Собственно действительно в чем проблема? Извините но ваш вопрос изначально поставлен некорректно(нет самого вопроса ::) )

Не знал как это сделать, сделал с помощью сценария, спасибо

Вы можете использовать сценарии, например:




model:


public function rules()

{

	return array(

		array('file', 'required', 'on'=>'newRecord'),

		),

	);

}






controller:


$model = new Model();

$model->scenario = 'newRecord';



или расширить функцию валидации:




// В модели пишите примерно так:

public function validate($attributes = NULL, $clearErrors = true)

{

	if ($this->isNewRecord) {

		$this->validatorList->add(CValidator::createValidator('required', $this, 'file'));

	}

	return parent::validate($attributes, $clearErrors);

}



$model->scenario(‘create’);

$model->setScenario(‘create’);

разницы нет?

первое вроде не должно работать. Должно быть равноценно:


$model->scenario= 'create';

$model->setScenario('create');