2017-06-13 84 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