【发布时间】:2014-10-14 09:00:27
【问题描述】:
我有以下实体:Event :hasOne: User :hasHone: Group
我想渲染一个数组(就像getArrayResult() 方法,但是使用链接的实体,所以这里我做了什么:
// build query
$em = $this->getServiceLocator()->get('Doctrine\ORM\EntityManager');
$query = $em->createQueryBuilder()
->select('evt, usr')
->from('Application\Model\Event', 'evt')
->join('Application\Model\User', 'usr')
->where('evt.userId in (:uid)')
->setParameter('uid', $usersId);
if (null !== $from) {
$query->andWhere('TRUNC(evt.litteralDate) > TO_DATE(:from, \'yyyy-mm-dd\')')
->setParameter('from', $from);
}
if (null !== $to) {
$query->andWhere('TRUNC(evt.litteralDate) < TO_DATE(:to, \'yyyy-mm-dd\')')
->setParameter('to', $to);
}
$events = $query->getQuery()->getArrayResult();
问题是getArrayResult() 将我选择的所有数据展平,所以我的用户和事件处于同一级别,我怎样才能实现这样的目标:
{
"events": [
{
"id": 1677,
"userId": 2,
"type": "T",
"date": {
"date": "2013-03-05 00:00:00",
"timezone_type": 3,
"timezone": "Europe/Paris"
},
"litteralDate": "05-MAR-13",
"piquet": true,
"when": "passe",
"description": "Jour Travaille",
"user" : {
"id" : 2,
"login" : "myUserName",
"name" : "MY user name"
}
},
}
【问题讨论】:
标签: php serialization doctrine-orm zend-framework2 query-builder