BirthdayType错误“此值必须是字符串类型。”

问题描述 投票:0回答:1

对于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,
])

但是当我提交表单时,出现此错误:

此值必须是字符串类型。

我不理解这种基本形式的错误

symfony symfony-forms
1个回答
0
投票

[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" ;
© www.soinside.com 2019 - 2024. All rights reserved.