Два Выбрать из другой таблицы в Symfony - PullRequest
0 голосов
/ 22 апреля 2020

Я пытаюсь вернуть два столбца ('question' и 'reponse') из двух разных таблиц (также называемых 'question' и 'reponse'), используя createQueryBuilder. У меня нет проблем, когда я возвращаю один столбец, но он не работает, когда я пытаюсь добавить новую опцию выбора.

Мой контроллер, который правильно отображает мое представление и данные:

 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'`

1 Ответ

0 голосов
/ 22 апреля 2020

Я не уверен, что понимаю, что ты хочешь делать. Но я полагаю, что вы хотите получить вопрос и ответ , относящиеся к этому вопросу.

Для этого вам нужно объединить эти таблицы. Вы можете использовать, например, 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 не было в таблице вопрос в базе данных

...