【发布时间】:2014-06-15 18:55:53
【问题描述】:
我需要完成一些验证,例如,在日期字段中。我已经配置了 config.sml 和 config_dev.xml 以启用注释,如文档中所述。这是我的代码:
实体:
/** *************************************************
* @var date
*
* @Assert\Date(message="Fecha de Nacimiento incorrecta")
* @ORM\Column(name="dfec_nacimiento", type="date", nullable=true)
*/
private $fecNacimiento;
/**
* @param date $fecNacimiento
*/
public function setFecNacimiento($fecNacimiento)
{
$this->fecNacimiento = $fecNacimiento;
}
/**
* @return date
* @Assert\Date()
*/
public function getFecNacimiento()
{
return $this->fecNacimiento;
}
控制器:
[..]
$form = $this->createForm(new IncidenciaType($numSocio,
null,
$listadoTiposIncidencia,
$listadoCentros,
$listadoTiposDoc,
$listadoTiposVia),
$incidencia);
$form->handleRequest($request);//bind del formulario con el request
if ($form->isValid()) {
//Some code
} else {
} else {
$errors = array();
if ($form->count() > 0) {
foreach ($form->all() as $child) {
/**
* @var \Symfony\Component\Form\Form $child
*/
if (!$child->isValid()) {
$errors[$child->getName()] = $this->getErrorMessages($child);
}
}
} else {
/**
* @var \Symfony\Component\Form\FormError $error
*/
foreach ($form->getErrors() as $key => $error) {
$errors[] = $error->getMessage();
}
}
//$errores = array('1' => 'Existen errores en los datos');
return $this->render('Bundle:Environment:registro.html.twig',
array('form' => $form->createView(),
'errores' => $errors));
}
表格:
->add('fecNacimiento','date', array('widget' => 'single_text',
'format' => 'dd/MM/yyyy',
'invalid_message' => 'Debe introducir una fecha válida',
'label' => 'Fecha nacimiento: '))
当用户输入无效日期时,我没有收到任何错误消息,例如 121/05/2000(dd/mm/yyyy 格式),但 $for->isValid() 返回 false。但是当用户输入 77/05/2000 时,它工作错误,在数据库中插入一个日期,将 77 天添加到 01/05/2000。
我哪里错了?
提前致谢
【问题讨论】:
-
您的问题解决了吗?在这种情况下,请分享您的解决方案。
-
我刚刚测试了这个解决方案,但仍然无法正常工作...
标签: validation date symfony