2011-11-03 3 views
0

Donc j'essaye de faire une requête sur une table qui contient deux clés étrangères. Ce tableau fait un code d'utilisateur spécifique pour être un « admin » d'un IDZone spécifique dans notre application mon DQL est la suivante:Symfony2/Doctrine DQL QueryException

'SELECT z, zone FROM MLBPBeerBundle:TableZoneAdmins z JOIN z.zoneAdminsZID WHERE z.zoneAdminsPID = '.$userID .'AND zone.zoneId = z.zoneAdminsZID' 

Je reçois cette erreur:

An exception has been thrown during the rendering of a template ("[Syntax Error] line 0, col 80: Error: Expected end of string, got 'z'") in "MLBPBeerBundle:Profile:index.html.twig" at line 10.

De la recherche à la requête la partie en question "ligne 0, col 80 est le début de z.zoneAdminsPID ce qui signifie au moins dans mon interprétation de l'erreur qu'il s'attend à ce que la chaîne se termine juste après le WHERE qui n'a aucun sens

plus confus est que j'ai déjà utilisé avec succès un simi LAR requête pour obtenir un nom d'équipe de notre table de jeux qui a une clé étrangère à l'ID équipes:

'SELECT g, team1 FROM MLBPBeerBundle:TableGame g JOIN g.gameWinnertid WHERE g.gameZoneid = '.$zoneId .'AND team1.id = g.gameWinnertid' 

Merci pour toute aide que vous pouvez fournir cela me laisse perplexe quant à moi, je ne suis pas vraiment voir une différence dans la façon de deux requêtes fonctionnent autre que le fait qu'ils sont accaparement des données différentes

Répondre

0

j'ai pu résoudre ce problème en ne comprenant pas le JOIN, Symfony est plus automagique que je pensais dans le fait que

SELECT z FROM MLBPBeerBundle:TableZoneAdmins z WHERE z.zoneAdminsPID = '.$userID 

De là, le zoneAdminsZID était une entité de zone propre, maintenant je crois que c'est charger paresseusement cette entité alias ne pas tirer la requête jusqu'à ce que je "derefence" le ZID mais pour nous cela fonctionne très bien