[英]Two Select from different table in Symfony
我正在嘗試使用 createQueryBuilder 從兩個不同的表(也稱為“問題”和“響應”)返回兩列(“問題”和“響應”)。 返回一列時我沒有問題,但是當我嘗試添加新的 Select 選項時它不起作用。
我的 Controller 正確呈現了我的視圖和數據:
public function play(Request $request) {
$id = $request->query->get('id');
$cat = $this->repository->findIdQuestion($id);
return $this->render('quiz_select.html.twig', [
'question' => $cat
]);
這是我刪除“addSelect”時可以使用的問題存儲庫
我能做些什么?
public function findIdQuestion($id) {
return $this->createQueryBuilder('question')
->addSelect('reponse')
->from('App\Entity\Reponse', 'reponse')
->where('question.id_categorie = :id')
->setParameter('id', $id)
->getQuery()
->getResult();
}
我得到那個錯誤:
`An exception occurred while executing 'SELECT q0_.id AS id_0, q0_.id_categorie AS id_categorie_1, q0_.question AS question_2, r1_.id AS id_3, r1_.id_question AS id_question_4, r1_.reponse AS reponse_5, r1_.reponse_expected AS reponse_expected_6, r1_.question_id AS question_id_7 FROM question q0_, reponse r1_ WHERE q0_.id_categorie = ?' with params ["2"]:
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'r1_.question_id' in 'field list'`
我不確定你想做什么。 但我想你想得到一個問題以及與這個問題相關的答復。
為此,您需要在這些表之間進行連接。 您可以使用例如 leftJoin
$query->leftjoin('App\Entity\Reponse','reponse','WITH','reponse.id = question.reponse_id')
請注意,我認為您的問題表中有 reponse_id 。 可以隨意用你想要的替換它。
如需更多精度,您可以查看 doctrine 文檔。
https://www.doctrine-project.org/index.html
有很多示例、教程和完整的文檔
[已編輯] 問題是字段 question_id 不在數據庫的表 question 中
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.