In Symfony habe ich diese Query Builder:Symfony Query Builder Fehler: Erwartete Literal erwartet, '>'
$form = $this->createFormBuilder()
->add('answers', EntityType::class, array(
'class' => 'QuizBundle\Entity\Answer',
'query_builder' => function (EntityRepository $er) use ($q_id) {
return $er->createQueryBuilder('a')
->where('a.question_id->getId() = :qID')
->setParameter('qID', $q_id);
},
'multiple'=>false,
'expanded'=>true,
'choice_label' => 'answer',
))
->add('Submit',SubmitType::class, array('label' => 'Send Answer'))
->getForm();
Ausführen der Abfrage erhalte ich diese Fehlermeldung:
[2/2] QueryException: [Syntax Error] line 0, col 58: Error: Expected Literal, got '>'
[1/2] QueryException: SELECT a FROM QuizBundle\Entity\Answer a WHERE a.question->getId() = :qID
Wer hat eine Ahnung, warum Das läuft nicht? Dank
tut es funktioniert ohne '-> getId()'? .. Sie werden versuchen, 'getId()' aus einer tatsächlichen 'question_id' ... vielleicht bin ich falsch .. sry – Wizard
@Wizard' question_id' ist ein Feld, das automatisch erstellt wurde basierend auf meiner Entität Beziehung (one Frage kann viele Antworten haben)/Wenn ich es herausnehme, dann findet es die Eigenschaft 'question_id' in meiner Entität nicht. Vielleicht würde eine andere Abfrage funktionieren: Ich muss alle Antworten erhalten, wo die Join-Spalte zwischen den beiden Tabellen 'question_id' mit der angegebenen ID übereinstimmt. Grundsätzlich alle Antworten, die für eine Frage stehen. – Otonel
Ich sehe, ich meine, wird es funktionieren, wenn Sie diese Zeile ändern: '-> where ('a.question_id-> getId() =: qID')' zu '-> where ('a.question_id =: qID)' ? – Wizard