createQueryBuilder leftJoin using Doctrine DQL and Symfony2



此代码不起作用。有人能帮我吗?代码为:

class ResultRepository extends EntityRepository
{
public function findAllByUserResultVote($id_vote)
{
$query = $this->createQueryBuilder('r')
->leftJoin('r.user' , 'u')
->leftJoin('r.answer' , 'a')
->leftJoin('r.vote' , 'v')
//Where idVote (Table result) == id (Table vote)
->where('r.idVote = :idVote')
->setParameter('idVote', $id_vote)
->getQuery();
return $query->getResult();
}
}

我有一个实体用户,答案,投票,结果

我有4个表:
用户:id(主),名称
投票:id(初选),问题
答案:id(主要),idVote,回答
结果:*id*。。。

结果只包含id,但我需要返回,例如:
而不是:1,6,5,3
此:1,u.name,v.question,a.answer

  1. 您不必手动编写联接条件。这是ORM的责任
  2. 您应该在where子句中使用Vote对象,而不是其ID。

    $vote = ...;
    $query = $this->createQueryBuilder('r')
    ->leftJoin('r.user', 'u')
    ->leftJoin('r.answer', 'a')
    ->leftJoin('r.vote', 'v')
    ->where('r.vote = :vote')
    ->setParameter('vote', $vote)
    ->getQuery();
    

相关内容

  • 没有找到相关文章

最新更新