我是 Symfony2 的新手,在通过 Doctrine 将日期时间数据输入到 MySQL 数据库时设置了一个表格,但是我遇到了以下错误:
The form's view data is expected to be of type scalar, array or an instance of \ArrayAccess, but is an instance of class DateTime. You can avoid this error by setting the "data_class" option to "DateTime" or by adding a view transformer that transforms an instance of class DateTime to scalar, array or an instance of \ArrayAccess.
当我尝试为字段使用建议的array('data_class' => 'dateTime')
设置时,但在缓存的twig模板中出现以下情况:
Catchable Fatal Error: Object of class DateTime could not be converted to string in
我尝试了几种方法,但无论如何都无法使其工作!
在我的实体中,它被声明如下:
/**
* @var \DateTime
*
* @ORM\Column(name="my_date", type="datetime", nullable=false)
* @Assert\Date()
*/
private $myDate;
同时作为我的表单中的隐藏字段:
$form = $this->createFormBuilder($myClass)
->add('myDate', 'hidden')
之所以隐藏起来是因为这些值是通过javascript多级表单添加的。有谁可以解释一下可能的问题,或者我该如何解决它?我应该将实体设置更改为“字符串”吗?
谢谢。
->viewToNorm()
,它恰好执行->normToView()
的相反操作:遍历所有视图转换器并执行->reverseTransform()
。 - Wouter J