Doctrine 2 DQL le CAS où le Comte
J'ai cette Requête en natif MySQL Code
SELECT *
FROM `turn`
LEFT JOIN (
poi
) ON ( turn.id = poi.turn_id )
GROUP BY turn.id
ORDER BY count( case when poi.image = 1 then 1 else null end) DESC;
J'ai besoin de reconstruire cette Doctrine 2 DQL
Une tentative de ma part jusqu'à présent est: est-ce
SELECT t, COUNT((CASE WHEN Bundle\Entity\Poi p.image = 1 then 1 ELSE NULL END)) AS num
FROM Bundle\Entity\Turn t
JOIN t.pois p
GROUP BY t.id
ORDER BY num DESC
Et im obtenir cette erreur:
An exception has been thrown during the rendering of a template ("[Syntax Error] line 0, col 99: Error: Expected end of string, got '.'") in Bundle:Admin:showTurnsFiltered.html.twig at line 75.
Ce que je fais mal?
Où êtes-vous exactement comment cette erreur ? Comment utilisez-vous votre DQL déclaration ?
Je l'utilise dans la classe de Référentiel, la création et le feu vers le haut. L'erreur s'affiche dans mon frontend. Il fait partie d'une fonction de filtre, si je suis à l'appel de cette fonction une erreur de serveur s'affiche. Ni stacktrace ni journal des erreurs de fournir de l'information utile :/
Comment sur la suppression d'un
Essayé, j'obtiens la même erreur encore une fois, au lieu de
Je l'utilise dans la classe de Référentiel, la création et le feu vers le haut. L'erreur s'affiche dans mon frontend. Il fait partie d'une fonction de filtre, si je suis à l'appel de cette fonction une erreur de serveur s'affiche. Ni stacktrace ni journal des erreurs de fournir de l'information utile :/
Comment sur la suppression d'un
(
et )
que vous êtes à l'aide de deux parenthèses :/ Il semble vraiment être un problème de syntaxe que votre requête est bonne.Essayé, j'obtiens la même erreur encore une fois, au lieu de
'.'
il y a un expected FROM condition
OriginalL'auteur KhorneHoly | 2014-07-04
Vous devez vous connecter pour publier un commentaire.
Je l'ai trouvé par moi-même après des heures de l'essayer et de la recherche, c'est de travailler avec cette DQL:
Important que vous devez utiliser la SOMME au lieu de COMPTER
Intéressant de noter que vous pouvez ajouter CACHÉS si vous ne voulez pas le numImage retourné dans les résultats.
SELECT t, SUM(CASE WHEN p.image = 1 then 1 ELSE 0 END) AS HIDDEN numImage
Bien que le remplacement de COMPTER avec la SOMME qui fonctionne dans votre cas, il semble y avoir un problème général avec l'aide de pièces en DQL. J'ai ouvert un problème pour elle ici: github.com/doctrine/doctrine2/issues/5915 n'hésitez pas à vous abonner.
OriginalL'auteur KhorneHoly
Vous devez utiliser ResultSetMappingBuilder. Il ressemblerait à quelque chose comme :
remarque: vous pourriez avoir besoin de changer
$query->getScalarResult()
à$query->getResult()
.Query
objets, mais pas avecNativeQuery
:-/bon permettez-moi de penser à une autre solution ! 🙂
Merci pour votre aide 🙂 j'ai déjà eu l'NativeQuery et il était quitté frustrant de voir que le module ne peut pas travailler avec elle, mais malheureusement, je suis obligé de l'utiliser
OriginalL'auteur Rybus