ZF2 + Doctrine Entity - 将查询作为带有datetime对象的数组返回?

时间:2014-02-24 22:11:58

标签: mysql doctrine-orm zend-framework2

我正在尝试将从querybuilder查询中检索到的一些数据输出到带有AJAX的Datatables表中。我有我的Zend Framework 2控制器和动作设置来返回一个新的JsonModel,它工作正常。

但是,我的Entity中的一个字段是datetime字段,因此Doctrine会自动将其作为Datetime对象返回,这会导致解析Datatables的JSON响应时出现问题。请参阅下面的示例JSON:

{"aaData":[{"rSerial":"345gsdf","rPin":"76","rValue":633,"rDatetime":{"date":"2013-12-18 09:24:19","timezone_type":3,"timezone":"Europe\/London"}}],"success":true}

有没有办法可以在检索结果时返回格式化为字符串的rDatetime列,以节省我不得不循环并更改结果数组中的格式?

$results = $queryBuilder->getQuery()->getResult(\Doctrine\ORM\AbstractQuery::HYDRATE_ARRAY);

1 个答案:

答案 0 :(得分:2)

实际上似乎有bug report for this issue supposed fix here

所以我假设您可以使用scalar hydration

  

返回一个扁平的矩形结果集,而不是一个可以使用标量水合作用的对象图

所以你的查询只需要

$query   = $queryBuilder->getQuery();
$results = $query->getResult(Query::HYDRATE_SCALAR);