Я пытаюсь присоединиться к таблице, для которой в моем файле конфигурации не определена связь. Зачем? Потому что я не хочу загрязнять эту сущность (раздел), потому что многие другие сущности могут быть связаны с этим отношением «многие к одному». Итак, я определяю отношение только с одной стороны, чтобы оно не загрязняло мою сущность Раздела.
Я пытаюсь сделать следующее:
// Find all sections with this bundle linked
$query = $this->getEntityManager()->getRepository('CompanyBackendSectionBundle:Section')->createQueryBuilder('s')
->select('s', 'st')
->innerJoin('s.translations', 'st')
->innerJoin('s.sectionBundles', 'sb')
->innerJoin('Company\Backend\FaqBundle\Entity\FaqQuestion', 'fq')
->where('st.locale = :locale')
->andWhere('sb.bundle = :bundleId')
->orderBy('st.name')
->setParameters(array(
'locale' => $this->getLocale(),
'bundleId' => $bundle->getId()
));
Проблема с "-> innerJoin ('Company \ Backend \ FaqBundle \ Entity \ FaqQuestion', 'fq')", я получил:
[Semantical Error] line 0, col 179 near 'fq WHERE st.locale': Error: Identification Variable Company\Backend\FaqBundle\Entity\FaqQuestion used in join path expression but was not defined before.
Есть ли способ сделать это кроме использования Doctrine Native Query?