簡體   English   中英

來自 Symfony 中不同表的兩個 Select

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM