se cmb_a is cheched e cmb_b is checked então //acção senão //erro!
Para tal, necessitamos de criar Validators personalizados e aplica-los ao nosso campo. Para tal na nossa classe de formulário acrescentamos as seguintes linhas:
public function configure() { parent::configure(); $this->validatorSchema['my_field'] = new sfValidatorCallback( array('callback' => array($this, 'validateMyField') ) ); } public function validateMyField($validator, $value) { /* All my action goes here */ $tainted_values = $this->getTaintedValues(); if ($tainted_values['my_field_2'] > 0 && $value != '') { return $value; } else { throw new sfValidatorError($validator, "I guess something goes wrong here!"); } }
No método validateMyField podemos aceder aos valores todos do formulário obtendo os Tainted values disponíveis utilizando o método getTaintedValues da classe dos formulários.
Realizadas as verificações pretendidas devolvemos o valor ($value) do campo validado ou despoletamos um erro que será apresentado pelo método renderError do formulário.
Sem comentários:
Enviar um comentário