简体   繁体   English

Doctrine2 QueryBuilder加入

[英]Doctrine2 QueryBuilder Join

So, I'm new to doctrine, and I'm trying to do a basic joint, but I guess I'm missing something, on my entities or I don't know for sure. 因此,我是该学说的新手,我正在尝试进行基本的结合,但是我想我在我的实体上缺少某些东西,或者我不确定。

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

And I get the following error 我得到以下错误

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行,'a,My \\ Entity \\ CompanyAdminNotes'附近的第76列:错误:标识变量管理员在联接路径表达式中使用,但之前未定义。

I'm not sure if my query it's wrong or something else isn't set. 我不确定查询是否错误或未设置其他内容。 Can you guys give me a hint? 你们能给我个提示吗?

try to change this: 尝试更改此:

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

to this: 对此:

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

Because It need the path as you done into the from 因为它需要您from的路径

UPDATE 更新

Trying another solution like this: 尝试这样的另一种解决方案:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM