私は私の_form.php
テンプレートにこのコードを持っています(無関係ないくつかのフィールドは省略されています):
<?php echo $form['correo_madre'] ?>
<?php echo $form['correo_madre']->renderError() ?>
私のAlumnosForm.class.phpにはこれがあります:
public function configure() {
$this->validatorSchema['correo_padre'] = new sfValidatorEmail(array(), array('invalid' => 'La dirección de correo no es válida'));
$this->validatorSchema['correo_madre'] = new sfValidatorEmail(array(), array('invalid' => 'La dirección de correo no es válida'));
$this->validatorSchema->setPostValidator(new sfValidatorCallback(array('callback' => array($this, 'checkFields'))));
}
public function checkFields($validator, $values) {
if ((!empty($values['alumnos_nombre_padre']) &&
!empty($values['alumnos_apellidos_padre']) &&
!empty($values['alumnos_rut_padre']) &&
!empty($values['alumnos_telefono_padre']) &&
!empty($values['alumnos_direccion_padre']) &&
!empty($values['alumnos_correo_padre'])) ||
(!empty($values['alumnos_nombre_madre']) &&
!empty($values['alumnos_apellidos_madre']) &&
!empty($values['alumnos_rut_madre']) &&
!empty($values['alumnos_telefono_madre']) &&
!empty($values['alumnos_direccion_madre']) &&
!empty($values['alumnos_correo_madre']))) {
return $values;
} else {
throw new sfValidatorError($validator, 'Los datos de uno de los dos padres son requeridos!!!');
}
}
BaseAlumnosForm.class.phpもチェックし、バリデーターにフィールドは必要ありません。
'correo_madre' => new sfValidatorString(array('max_length' => 100, 'required' => false))
フォームを送信しようとすると、プロセスが失敗します。
必須
メッセージ、なぜ?