Doctrine2 QueryBuilder加入

时间:2017-06-13 10:21:56

标签: php zend-framework doctrine-orm

所以,我是学说的新手,我正在努力做一个基本的联合,但我想我错过了一些东西,在我的实体上,或者我不确定。

Doctrine Repository:

$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();

我收到以下错误

  

消息:[语义错误]第0行,第76行附近'a,   我的\ Entity \ CompanyAdminNotes':错误:标识变量   管理员在连接路径表达式中使用但未定义   之前。

我不确定我的查询是错还是其他没有设置。你们能给我一个暗示吗?

1 个答案:

答案 0 :(得分:2)

尝试改变这个:

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

到此:

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

因为它需要你在from

中完成的路径

更新

尝试这样的另一种解决方案:

         $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);