Dieser Code:DQL - leftJoin() Fehler: Erwartete Literal erwartet, 'JOIN
$builder->select('p')
->from('ProProposalBundle:Proposal', 'p')
->leftJoin('ProProposalBundle:Proposal:Vote', 'v')
->leftJoin('ProUserBundle:User', 'u')
->andWhere('v.proposal = p')
->andWhere('v.user = u')
->andWhere('v.decision = "in_favor" OR v.decision = "against"')
->andWhere('u = :user')
->setParameter('user', $options['user'])
->andWhere('p.community = :community')
->setParameter('community', $community)
->andWhere('p.archived = :archived')
->setParameter('archived', $options['archived'])
->leftJoin('p.convocation', 'c')
->andWhere("p.convocation IS NULL OR c.status = '" . Convocation::STATUS_PENDING . "'");
return $builder->getQuery()->execute();
zurückkehrt einen Fehler:
[Syntax Error] line 0, col 106: Error: Expected Literal, got 'JOIN'
Dies ist die gebildete Abfrage:
SELECT p FROM ProProposalBundle:Proposal p LEFT JOIN ProProposalBundle:Proposal:Vote v LEFT JOIN ProUserBundle:User u LEFT JOIN p.convocation c WHERE v.proposal = p AND v.user = u AND (v.decision = "in_favor" OR v.decision = "against") AND u = :user AND p.community = :community AND (p.convocation IS NULL OR c.status = 'pending') ORDER BY p.created desc
LEFT JOIN
fehlt der ON
oder WITH
Zustand. Die Frage ist: Was mache ich falsch mit der DQL-Abfrage? Bin ich falsch mit leftJoin()
Methode?
Oh! Gut. Die Sache ist, dass 'p.vote' nicht existiert (nur' v.proposal'). und weder 'p.user' (nur' v.user'). – Manolo
Sie sollten umgekehrte Beziehungen wie p.votes haben und Sie können v.user verwenden (ich habe meine Antwort bearbeitet) – AlterPHP
Jeder Weg, um es zu erreichen, ohne Beziehung wie 'p.votes' hinzuzufügen? Es muss möglich sein. – Manolo