Форма Symfony2 › Тип поля сущности › построитель запросов › возможен подвыбор?

У меня есть форма с типом поля объекта.
Внутри этого типа поля объекта у меня есть построитель запросов, потому что я хочу выбрать только некоторые записи.
Однако я хочу сделать подзапрос внутри этого построителя запросов, и я не уверен, что это правильный путь:

'query_builder' => function(EntityRepositorty $er) {
    $subq = $er->createQueryBuilder()        
    //cannot select other entity here?

    return $er->createQueryBuilder('a')
    ->leftJoin($subq)
    ->where('blah blah')
}

Кто-нибудь сталкивался с этой проблемой и каково было их решение?

Левое соединение выглядит примерно так:

LEFT JOIN (select * from `table_c` order by date desc) as c on c.status_id = a.id

person Andrew Atkinson    schedule 11.04.2013    source источник
comment
Вам действительно нужно добавить подзапрос? как насчет отношений между двумя вашими сущностями?   -  person Ahmed Siouani    schedule 11.04.2013
comment
почему вы не делаете этого с нормальными отношениями между сущностями?   -  person Inoryy    schedule 12.04.2013
comment
Мне нужно получить последние значения из table_c. объяснить дальше?   -  person Andrew Atkinson    schedule 12.04.2013


Ответы (1)


Ваше описание предполагает, что таблица c отображается в таблицу a как отношение «один ко многим». Вы должны просто использовать обычные соединения доктрины:

'query_builder' => function(EntityRepository $er) {
    return $er->createQueryBuilder('c')
    ->join('c.a', 'a');
}

Вам нужно использовать обычное соединение, потому что левое соединение даст вам все в таблице c, независимо от того, связано ли оно с a.

person Lighthart    schedule 12.04.2013