【发布时间】:2015-11-04 19:20:19
【问题描述】:
我有几个没有设置关系的实体。目前我有一个查询: $qb = $this->getEntityManager()->createQueryBuilder();
$qb->select('post, user')
->from('PostBundle:Post', 'post')
->leftJoin('UserBundle:User', 'user', 'WITH', 'post.createdBy = user.id')
->groupBy('post');
$result = $qb->getQuery()->getResult();
问题在于,通过这种方式,我将帖子和用户作为不同的数组元素。类似:
[
[
'id'=> post.id,
'text' => post.text
],
[
'id'=> user.id,
'name' => user.name
],
[
'id'=> post.id,
'text' => post.text
],
[
'id'=> user.id,
'name' => user.name
],
...
]
如果我将查询的选择更改为:
$qb->select('post, user.id')
我明白了
[
[
'id'=> post.id,
'text' => post.text,
'user.id' => user.id,
],
[
'id'=> post.id,
'text' => post.text,
'user.id' => user.id,
],
...
]
但我真正需要的是获取整个用户对象而不是单个字段,因此我的结果看起来像这样:
[
[
'id'=> post.id,
'text' => post.text,
'user' => [
'id' => user.id,
'name' => user.name,
],
[
'id'=> post.id,
'text' => post.text,
'user' => [
'id' => user.id,
'name' => user.name,
],
...
]
我尝试了不同的分组选项,但没有成功。我如何做到这一点?
【问题讨论】:
-
恐怕,如果你没有实体之间的任何关系,你就无法依靠教义来获得你所需要的。
标签: symfony doctrine-orm