Php Doctrine2 QueryBuilder联接
所以,我对教义是新手,我正在尝试做一个基本的联合,但我想我遗漏了一些东西,关于我的实体,或者我不确定 条令存储库:Php Doctrine2 QueryBuilder联接,php,zend-framework,doctrine-orm,Php,Zend Framework,Doctrine Orm,所以,我对教义是新手,我正在尝试做一个基本的联合,但我想我遗漏了一些东西,关于我的实体,或者我不确定 条令存储库: $queryBuilder = $this->createQueryBuilder() ->select('c.*, a.*') ->from('My\Entity\CompanyAdminNotes', 'c') ->innerJo
$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”附近,
My\Entity\CompanyAdminNotes”:错误:标识变量
管理员已在联接路径表达式中使用,但未定义
以前
我不确定我的查询是错误的还是没有设置其他内容。你们能给我一个提示吗?试着改变一下:
->innerJoin('Administrators','a','a.id = c.admin_id')
为此:
->innerJoin('My\Entity\Administrators','a','a.id = c.admin_id')
因为它需要路径,就像您从
更新
尝试其他类似的解决方案:
$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);
尝试更改此选项:
->innerJoin('Administrators','a','a.id = c.admin_id')
为此:
->innerJoin('My\Entity\Administrators','a','a.id = c.admin_id')
因为它需要路径,就像您从
更新
尝试其他类似的解决方案:
$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);
您需要在联接中添加类/实体名称。。i、 e.
innerJoin(实体\管理员)
您需要在加入中添加类/实体名称。。i、 e.innerJoin(Entity\Administrators)
No,仍然不起作用消息:[语义错误]第0行,第85列靠近“a,My\Entity\CompanyAdminNotes”:错误:标识变量My\Entity\Administrator在联接路径表达式中使用,但以前未定义。是,我已经仔细检查了它我需要在我的实体中将某些字段声明为@Join吗?好的,请记住删除有时会产生错误的缓存。您不需要将某些字段声明为@Join,我认为问题在queryNo中是语义问题,仍然不起作用消息:[语义错误]第0行,第85列靠近'a,My\Entity\CompanyAdminNotes”:错误:标识变量My\Entity\Administrator在联接路径表达式中使用,但以前未定义。是的,我已仔细检查了它是否需要在我的实体中将某些字段声明为@join?确定请记住删除有时会创建错误的缓存否不需要将某些字段声明为@join,我认为这个问题与查询的语义有关