Doctrine2 innerJoin между двумя таблицами без определения связи - PullRequest
3 голосов
/ 06 марта 2012

Я пытаюсь присоединиться к таблице, для которой в моем файле конфигурации не определена связь. Зачем? Потому что я не хочу загрязнять эту сущность (раздел), потому что многие другие сущности могут быть связаны с этим отношением «многие к одному». Итак, я определяю отношение только с одной стороны, чтобы оно не загрязняло мою сущность Раздела.

Я пытаюсь сделать следующее:

// 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?

1 Ответ

3 голосов
/ 06 марта 2012

Нет.Doctrine Query Language требует от вас определения отношения в том направлении, в котором вы хотите его использовать ...

...