1

我有这个 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 有什么变化吗?

4

0 回答 0