对于Symfony 5,我只是希望使用BirthdayType创建表单:
实体:
/**
* @var \DateTime
*
* @ORM\Column(type="date")
* @Assert\NotBlank()
* @Assert\DateTime()
*/
private $birthday;
表格:
->add('birthday', BirthdayType::class, [
'label' => 'label.birthday',
'format' => \IntlDateFormatter::LONG,
])
但是当我提交表单时,出现此错误:
此值必须是字符串类型。
我不理解这种基本形式的错误
[IntlDateFormatter::LONG
代表长日期格式,例如“ 1952年1月12日或3:30:32 pm”,但是在内部它映射为整数值,表单类型无法理解。
相反,您可以手动提供字符串值或使用DateTimeInterface
中的常量之一:
const string DateTimeInterface::ATOM = "Y-m-d\TH:i:sP" ;
const string DateTimeInterface::COOKIE = "l, d-M-Y H:i:s T" ;
const string DateTimeInterface::ISO8601 = "Y-m-d\TH:i:sO" ;
const string DateTimeInterface::RFC822 = "D, d M y H:i:s O" ;
const string DateTimeInterface::RFC850 = "l, d-M-y H:i:s T" ;
const string DateTimeInterface::RFC1036 = "D, d M y H:i:s O" ;
const string DateTimeInterface::RFC1123 = "D, d M Y H:i:s O" ;
const string DateTimeInterface::RFC2822 = "D, d M Y H:i:s O" ;
const string DateTimeInterface::RFC3339 = "Y-m-d\TH:i:sP" ;
const string DateTimeInterface::RFC3339_EXTENDED = "Y-m-d\TH:i:s.vP" ;
const string DateTimeInterface::RSS = "D, d M Y H:i:s O" ;
const string DateTimeInterface::W3C = "Y-m-d\TH:i:sP" ;