Doctrine 2: résultat de la requête en tant que tableau associatif
Dans mon Référentiel de la classe j'utilise le code suivant pour la requête:
$query = $this->getEntityManager()->createQuery("
SELECT s.term, COUNT(s.term) AS freq
FROM App\Entities\SearchTerm s
GROUP BY s.term
ORDER BY s.term ASC
");
$result = $query->getResult();
Le résultat que j'obtiens est quelque chose comme:
array (size=4)
0 =>
array (size=2)
'term' => string '' (length=0)
'freq' => string '1' (length=1)
1 =>
array (size=2)
'term' => string 'foo' (length=3)
'freq' => string '1' (length=1)
2 =>
array (size=2)
'term' => string 'bar' (length=3)
'freq' => string '2' (length=1)
3 =>
array (size=2)
'term' => string 'baz' (length=3)
'freq' => string '2' (length=1)
Mais je préférerais avoir un tableau associatif comme un résultat:
array (size=4)
'' => string '1' (length=1)
'foo' => string '1' (length=1)
'bar' => string '2' (length=1)
'baz' => string '2' (length=1)
Est-ce possible sans un extra de boucle pour construire le tableau désiré?
source d'informationauteur Yeroon
Vous devez vous connecter pour publier un commentaire.
Je sais que je suis vieux, mais aujourd'hui j'ai eu à faire à peu près la même, ma solution sans personnalisé hydratant
comme
ou
comme
Si vous voulez un tableau vous pouvez utiliser le
getArrayResult
méthode.Donc, en utilisant cette méthode vous donnera exactement le même résultat que l'utilisation de la constante
HYDRATE_ARRAY
.Fait quelque part la transposition doit être fait. Voir 14.7.4. Hydratation Modes à propos de ce qui est retourné par
->getResult()
et quelles sont les alternatives modes/variantes existent déjà.Vous pouvez également ajouter vos propres hydratation de la mode, dans un endroit central. C'est expliqué dans 14.7.4.5. Personnalisé Hydratation Modes.
Après beaucoup de recherche j'ai trouvé quelques solutions pour doctrine de l'objet de tableau de conversion. Lorsque nous avons associé les objets du résultat.
1.
2.
3.