doctrine2 внутреннее соединение данных в объекте

Итак, я делаю два внутренних соединения:

<?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 к сущности Users, но это не сработало.

Что мне нужно сделать, чтобы это работало в результате запроса?

Спасибо

1

Решение

Я не нашел способа сделать то, что хотел, используя только доктрину, но так как я использую соноту, и по этой причине мне нужны были pic1 и pic2, я создал DataGrid Decorator и перехватил метод getResult ().
В классе администратора я переопределяю buildDataGrid (сейчас у меня нет исходного кода, но я думаю, что это был метод), и он создаст сетку данных, но затем я сделаю что-то вроде:

$this->datagrid = new DataGridDecorator($this->datagrid)

Затем декоратор изменит результат, полученный методом getResult (), на то, что ожидает соната, и поэтому мне не нужно переопределять, я не знаю, сколько шаблонов.

Спасибо за помощь!

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]