Подобно Symfony, это достигается с помощью PostValidator!
Сначала, как упомянул @samura, спрячьте и наблюдайте виджет ответа с помощью (например) jQuery, затем используйте PostValidator.
// Form.class.php
/* ..... */
$this->validatorSchema->setPostValidator(
new sfValidatorCallback(array('callback' => array($this, 'checkAnswer')))
);
Затем внедрите свой валидатор
// Form.class.php something else
public function checkAnswer($validator, $values)
{
if (($values['yes_no'] == '0') && (empty($values['answer')))
{
$error = new sfValidatorError($validator, 'Invalid answer');
// throw answer error
throw new sfValidatorErrorSchema($validator, array('answer' => $error));
}
return $values;
}
Вы можете найти больше здесь