Doctrine Join - 错误:Class'别名'没有定义

时间:2016-05-27 10:46:12

标签: symfony doctrine entitymanager query-builder doctrine-query

我正在使用Doctrine中的QueryBuilder对象进行查询。在该查询中,我有join我不知道为什么,给我一个错误,说其中一个表(fe)的别名(F_Expenses)不是定义。在SQL中,我的查询看起来像这样:

select * from f_expenses
join users_f_expenses on f_expenses.id=users_f_expenses.id_form
where login="Jack1234";

这就是说,这是包含我的QueryBuilder对象的函数:

public function getFormsAction($login){

    $em = $this->getDoctrine()->getEntityManager();
    $qb = $em->createQueryBuilder()
             ->select('fe')
             ->from('intranetBundle:Entity\F_Expenses', 'fe')
             ->innerJoin('fe', 'intranetBundle:Entity\Users_F_Expenses', 'ufe', 'fe.id = ufe.idForm')
             ->where('ufe.login = :login')
             ->setParameter('login', $login)
             ->getQuery();


    $formsOfTheUser = $qb->getArrayResult();

    $serializer = SerializerBuilder::create()->build();
    $serializer->serialize($formsOfTheUser, 'json');

    return $formsOfTheUser;
}

注意,是的,数据库中名为id_form的字段在实体中被命名为idForm。这正是错误:

  

[语义错误]第0行,第62页附近的fe内网捆绑:实体\ Users_F_Expenses':错误:Class' fe'没有定义。

我刚刚关注APIjoin的第一个参数用于指定FROM的别名,因此fe。第二个和第三个参数分别是连接表及其别名(所以intranetBundle:Entity\Users_F_Expensesufe),最后第四个是on子句(fe.id = ufe.idForm)。

我已尝试删除join行并从第一个表格中生成正常的select并且它有效,因此我非常确定该错误有待完成使用join子句。

0 个答案:

没有答案