我的_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))
当我尝试提交表单过程失败时
必需的
留言,为什么?