Symfony不接受 12/12 /任何年份 - 31/12 /任何年度之间的日期作为日期,并在下面产生错误。
DateTime::__construct(): Failed to parse time string (31/12/1111) at position 0 (3): Unexpected character
有什么理由?
注意:有人会问为什么我不使用下面的行。我不使用,因为我不希望来自表单类型的表单验证错误。我纯粹是在注释上。如果有人知道如何绕过来自表单类型的表单验证错误,那么我很乐意学习并使用它。
$builder->add('year', 'date', array('widget' => 'single_text', 'format' => 'dd/MM/yyyy'));
汽车实体:
/**
* @var date
* @ORM\Column(type="date")
* @Assert\NotBlank(message="The Year field is required.")
*/
protected $year;
表单类型:
->add('year', 'text', array('label' => 'Year'))
控制器
$cars->setYear(new \DateTime($formdata->getYear()));
答案 0 :(得分:2)
根据the documentation,您应该更改此行
$cars->setYear(new \DateTime($formdata->getYear()));
到这个
$cars->setYear(\DateTime::createFromFormat('j/m/Y', $formdata->getYear()));