Validação encadeada

Olá pessoal, alguém sabe me dizer como faço para validar um campo apenas quando o valor de outro campo for alterado?

Por exemplo, por padrão eu tenho:




public function rules()

	{

		// NOTE: you should only define rules for those attributes that

		// will receive user inputs.

		return array(

        	array('idcidade, idarea, data, endereco, nome, proprietario, assina', 'required'),

			array('idcidade, idarea, idposicao, proprietario, justificativa, assina', 'numerical', 'integerOnly'=>true),

   	...



Neste caso eu quero que se o campo ‘justificativa’ for preenchido diferente do valor 0 (zero) o campo nome e outros deixem de ser obrigatórios. E também quero algo parecido com outros campos, mas talvez resolvendo este eu resolvo os outros.

Alguém sabe como posso fazer esta situação?

Obrigado

meio foi de hora aqui, mas em suma o que me ocorreu foi fazer um validador customizado, uma função neste modelo que serviria como wrapper para as validações.


rules() {

  array('justificativa', 'justifica_validate')

}


function justifica_validate() {

  if ($this->justificativa) {

    Yii::app()->validate->required('field list');

  } else {

....

  

}

Consulte a documentação para saber como validar os campos fora do rules() utilizando as classes CValidator.

Hum, eu queria usar algo tipo esta extensão: http://www.yiiframework.com/extension/cascaded-validator/#add-comment

Só que não entendi direito como ela é utilizada.