Doctrine DQL složitější SQL dotaz

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
motorcb
Člen | 552
+
-2
-

Zdravím,

mám nálesující dotaz, který mi funguje v SQL:

   SELECT p.* FROM player p
   LEFT JOIN player_team pt ON pt.player_id = p.id
   WHERE p.position = 'brankar' AND pt.end IS NULL

Ale aplikaci mam v Docrine 2 a vše v entitách, přepíšu ho tedy na entitny:

   SELECT p FROM App\Model\Entities\Player p
   LEFT JOIN App\Model\Entities\PlayerTeam pt ON pt.player = p.id
   WHERE p.position = "brankar" AND pt.end IS NULL

Ten mi ale vraci chybu: [Syntax Error] line 0, col 85: Error: Expected Doctrine\ORM\Query\Lexer::T_WITH, got ‚ON‘

Co dělam spatne?

F.Vesely
Člen | 369
+
+1
-

Pises tam ON, misto WITH. Uplne nejlepsi bude, kdyz ten dotaz poskladas pres QueryBuilder.

leninzprahy
Člen | 150
+
+2
-

V tom DQL by neměla být přímo ta joinovaná entita, ale odkaz na ní, viz http://docs.doctrine-project.org/…anguage.html#…

Nevím jak máš v entitě hráče pojmenovaný odkaz na tým(y), ale pokud by se jmenoval teams mělo to DQL vypadat asi takto:

SELECT p FROM App\Model\Entities\Player p
LEFT JOIN p.teams pt
WHERE p.position = "brankar" AND pt.end IS NULL