此代碼不起作用。有誰能夠幫助我?代碼是:createQueryBuilder leftJoin使用Doctrine和Symfony2
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(主),ID用戶(ID表用戶),idVote(ID表票),idAnswer(ID表的答案),...
----- 編輯 - ---
感謝您的答案,但這不是我所做的。
結果也是一張表。而這僅包含ID,我需要回到例如:
相反的: 1,6,5,3
此: 1,u.name,v.question,a.answer
我不認爲你需要所有' - > where('r.idUser = u.id')'部分,因爲連接已經在你的模式中進行,所以它知道在哪裏做。另外,你是否有實際的字段叫'idUser','idAnswer'或'idVote'? – qooplmao