Опциональные правила модели

Есть два действия, использующие одну модель для представления формы и сохранения данных. В форме для одного из действий часть полей скрыта. Можно ли каким-нибудь образом сделать правила валидации модели опциональными, чтобы для одного из действий поле было обязательным для заполнения, а для другого действия оно не проверялось (поскольку оно даже не отображается в форме)? Или, иначе, как можно модели узнать, какая action ее использует в данный момент?

to Alexander Ivanov

Да, это возможно. Посмотрите в документации раздел сценариев модели. Если вкратце, то вы можете в действиях контролера явно указать какой сценарий модели использовать, примерно таким образом:




$model->scenario='foo';



А в правилах валидации можно четко указать в пределах каких атрибутов использовать тот или иной сценарий:




public function rules()

{

    return array(

        ...

        'bar'=>array('email','on'=>'foo'),

        ...

    );

}



Ещё не забудьте, что метод safeAttributes() в модели при использовании сценариев в случае необходимости тоже следует модифицировать соответствующим образом.

Спасибо, то что нужно!