doctrine2 内部连接对象中的数据
doctrine2 inner join data in object
所以我正在做两个内部连接:
<?php
$q->select('o, pic.path pic1, pic_.path pic2');
$q->innerJoin('\TestBundle\Entity\UserImages', 'pic', 'WITH', 'o.id = pic.user');
$q->where('pic.keyname = \'pic1\'');
$q->innerJoin('\TestBundle\Entity\UserImages', 'pic_', 'WITH', 'o.id = pic.user');
$q->where('pic_.keyname = \'pic2\'');
这有效,但返回的结果是这样的:
array (size=1)
0 =>
array (size=3)
0 =>
object(TestBundle\Entity\user)[1359]
private 'name' => string 'test' (length=12)
private 'created' =>
object(DateTime)[1347]
...
private 'modified' => null
private 'deleted' => null
private 'id' => int 1
'pic1' => string 'pic1.png' (length=8)
'pic2' => string 'pic2.png' (length=8)
有没有办法在对象中设置pic1和pic2?
我尝试将 setPic1/Pic2 添加到用户实体,但这没有用。
我需要做什么才能使它在查询结果中起作用?
谢谢
我没有找到一种方法来仅使用 doctrine 来做我想做的事情,但由于我使用的是 sonota,这就是我需要 pic1 和 pic2 的原因,我创建了一个 DataGrid Decorator 并拦截了 getResult() 方法。
在管理员 class 中,我重写了 buildDataGrid(现在没有源代码,但我认为这是方法),它将创建数据网格,但随后我会做类似的事情:
$this->datagrid = new DataGridDecorator($this->datagrid)
装饰器随后会将方法 getResult() 给出的结果更改为奏鸣曲所期望的结果,因此我不必重写我不知道有多少模板。
感谢您的帮助!
所以我正在做两个内部连接:
<?php
$q->select('o, pic.path pic1, pic_.path pic2');
$q->innerJoin('\TestBundle\Entity\UserImages', 'pic', 'WITH', 'o.id = pic.user');
$q->where('pic.keyname = \'pic1\'');
$q->innerJoin('\TestBundle\Entity\UserImages', 'pic_', 'WITH', 'o.id = pic.user');
$q->where('pic_.keyname = \'pic2\'');
这有效,但返回的结果是这样的:
array (size=1)
0 =>
array (size=3)
0 =>
object(TestBundle\Entity\user)[1359]
private 'name' => string 'test' (length=12)
private 'created' =>
object(DateTime)[1347]
...
private 'modified' => null
private 'deleted' => null
private 'id' => int 1
'pic1' => string 'pic1.png' (length=8)
'pic2' => string 'pic2.png' (length=8)
有没有办法在对象中设置pic1和pic2? 我尝试将 setPic1/Pic2 添加到用户实体,但这没有用。
我需要做什么才能使它在查询结果中起作用?
谢谢
我没有找到一种方法来仅使用 doctrine 来做我想做的事情,但由于我使用的是 sonota,这就是我需要 pic1 和 pic2 的原因,我创建了一个 DataGrid Decorator 并拦截了 getResult() 方法。 在管理员 class 中,我重写了 buildDataGrid(现在没有源代码,但我认为这是方法),它将创建数据网格,但随后我会做类似的事情:
$this->datagrid = new DataGridDecorator($this->datagrid)
装饰器随后会将方法 getResult() 给出的结果更改为奏鸣曲所期望的结果,因此我不必重写我不知道有多少模板。
感谢您的帮助!