我有这个 Symfony 4.3.11 API 休息应用程序:
这是我的帖子请求正文:
{
"publicationDate": "2019-03-13"
}
实体 :
/**
* @var \DateTimeImmutable
*
* @ORM\Column(type="datetime_immutable")
*
* @Assert\NotBlank(message="required.field")
* @Assert\Date(message="invalid.date")
*/
private $publicationDate;
我的实体类型:
$builder
->add('publicationDate', DateTimeType::class, [
'input' => 'datetime_immutable',
'widget' => 'single_text',
'format' => 'yyyy-MM-dd',
'invalid_message' => 'invalid.date',
]);
提交后数据如下所示:
object(App\Entity\MyEntity)[3996]
private 'id' => null
private 'publicationDate' =>
object(DateTimeImmutable)[5718]
public 'date' => string '2019-03-13 00:00:00.000000' (length=26)
public 'timezone_type' => int 3
public 'timezone' => string 'Europe/Paris' (length=12)
这很好用。
但是现在,我有一个具有相同实体的基本 Symfony 5.0.5 应用程序。表单类型略有不同(应禁用 html5 选项):
我的实体类型:
$builder
->add('publicationDate', DateTimeType::class, [
'input' => 'datetime_immutable',
'html5' => false,
'widget' => 'single_text',
'format' => 'yyyy-MM-dd',
'invalid_message' => 'invalid.date',
]);
Post Submit 数据与上面完全相同。
但是在提交时,我有一个验证错误:
array (size=1)
'publicationDate' =>
array (size=1)
0 => string 'This value should be of type string.'
S4 和 S5 之间的 datetimetype 有什么变化吗?