我有一个包含DateTime字段的学说实体。 当我序列化表单使用的对象时,我使用这个回调函数(取自symfony documentation)转换datetime对象:
$callback = function ($dateTime) {
return $dateTime instanceof \DateTime
? $dateTime->format(\DateTime::ISO8601)
: '';
此函数附加到规范化器。
使用dd/MM/yyyy
图片将日期进一步转换为字符串,并将其作为字符串放置到表单中(我使用的是JavaScript日期选择器)。
使用ajax将表单发布到控制器,该控制器将实体作为PHP数组。
现在我需要将数组(包含日期作为字符串)转换回我的Doctrine实体。
有没有办法将数组反序列化为实体?
我尝试deserialize(json_encode($array))
,但我在DateTime转换时遇到错误。
任何提示?
答案 0 :(得分:0)
我认为最常用的方法是使用Symfony2 DateTime FormType
看起来像那样:
$builder->add(
'date',
'datetime',
array(
'widget' => 'single_text',
'format' => 'dd/MM/yyyy'
)
);
如果您不喜欢使用表单组件,我不知道将数组映射到实体的简单方法。