DateTime 对象的 Symfony HiddenType

Symfony HiddenType for a DateTime object

我有一个简单的表格

   ->add('createDateTime', HiddenType::class)

导致错误:

Object of class DateTime could not be converted to string

我该如何解决这个问题?我不想将实体更改为 return 字符串格式的日期...

有什么想法吗?

由于表单 inputs 需要数据的文本表示,您需要借助 DataTransformer 将值转换为字符串。幸运的是,Symfony 为 DateTime 对象提供了一个转换器,你只需要将它添加到你的表单字段中:

$builder
    ->add('field') //...
    ->add('createDateTime', HiddenType::class);

$builder
    ->get('createDateTime')
    ->addModelTransformer(new DateTimeToStringTransformer());

如果需要,您可以指定different timezones for conversion or format