我有这个DateType:
$builder
->add('date', DateType::class, array(
'widget' => 'single_text',
'format' => 'dd/MM/yyyy',
"required"=>true,
'label' => "jour.date"))
提交日期为空的表单时,没有任何问题。它成功通过了
if ($form->isValid())
控制器中的,最后会弹出错误
SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'date' cannot be null
查询失败,因为它不能为空。但我希望它能够返回错误,并且在日期为空时不要让表单得到验证!
根据要求,实体:
/**
* @var \DateTime
*
* @ORM\Column(name="date", type="datetime")
*/
private $date;
非常感谢。
答案 0 :(得分:1)
来自所需选项的symfony docs
这是肤浅的,独立于验证。充其量,如果你 让Symfony猜测你的字段类型,那么这个选项的值就会出现 从你的验证信息中猜到。
当您调用表单有效时,它依赖验证器服务和实体验证映射来验证您的实体。
您需要constraint来设置所需
答案 1 :(得分:0)
你必须改变:
$builder
->add('date', DateType::class, array(
'widget' => 'single_text',
'format' => 'dd/MM/yyyy',
"required"=>true,
'label' => "jour.date"))
以强>
$builder
->add('date', DateTimeType::class, array(
'widget' => 'single_text',
'format' => 'dd/MM/yyyy',
"required"=>true,
'label' => "jour.date"))