【发布时间】:2014-03-01 01:04:45
【问题描述】:
此代码不起作用。有谁能够帮我?代码是:
class ResultRepository extends EntityRepository
{
public function findAllByUserResultVote($id_vote)
{
$query = $this->createQueryBuilder('r')
//associating tables...
->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(主要),idUser(id表用户),idVote(id表投票),idAnswer(id表答案),...
-----编辑----
感谢您的回答,但这不是我的工作。
结果也是一个表。这仅包含 id 并且我需要返回例如:
而不是: 1, 6, 5, 3
This: 1, u.name, v.question, a.answer
【问题讨论】:
-
我认为您不需要所有
->where('r.idUser = u.id')部分,因为连接已经在您的模式中进行,因此它知道在哪里进行。另外,您是否有名为idUser、idAnswer或idVote的实际字段?
标签: php mysql sql symfony doctrine-orm