2017-06-13 86 views
0

所以,我是新來的教條,我試圖做一個基本的聯合,但我想我錯過了什麼,在我的實體或我不知道肯定。Doctrine2 QueryBuilder加入

學說庫:

$queryBuilder = $this->createQueryBuilder() 
        ->select('c.*, a.*') 
        ->from('My\Entity\CompanyAdminNotes', 'c') 
        ->innerJoin('Administrators','a','a.id = c.admin_id') 
        ->where('c.admin_id = :admin_id') 
        ->setParameter('admin_id', $id); 
return $queryBuilder->getQuery()->getResult(); 

而且我得到以下錯誤

Message: [Semantical Error] line 0, col 76 near 'a, My\Entity\CompanyAdminNotes': Error: Identification Variable Administrators used in join path expression but was not defined before.

我不知道如果我的查詢它是錯的還是其他什麼東西沒有設置。你們能給我一個提示嗎?

+0

你需要在你的加入...即'innerJoin(實體\管理員)' –

回答

2

試圖改變這一點:

->innerJoin('Administrators','a','a.id = c.admin_id') 

這樣:

->innerJoin('My\Entity\Administrators','a','a.id = c.admin_id') 

,因爲它需要的路徑爲你做入from

UPDATE

嘗試其他這樣的解決方案:

  $queryBuilder = $this->createQueryBuilder('c') 
      ->select('c, a') 
      ->from('My\Entity\CompanyAdminNotes', 'c') 
      ->innerJoin('My:Administrators','a','a.id = c.admin_id') 
      ->where('c.admin_id = :admin_id') 
      ->setParameter('admin_id', $id); 
+0

沒有,仍然不起作用留言添加類/實體名稱:語義錯誤] 0行,列85附近的「一,My \ Entity \ CompanyAdminNotes':錯誤:在連接路徑表達式中使用的標識變量My \ Entity \ Administrator但之前未定義。 – Uffo

+0

你插入了正確的道路嗎? –

+0

是的,我已經加倍檢查了它 – Uffo