此代码不起作用。有人能帮我吗?代码为:
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
- 您不必手动编写联接条件。这是ORM的责任
-
您应该在
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();