在使用Symfony之前,我用PHP编写了我的代码。这是我的代码:
$query_nb_cat = "SELECT titre_categorie_nv1, COUNT(*)
FROM Tutoriels
INNER JOIN Groupe_de_categories
ON Tutoriels.id_groupe_categorie = Groupe_de_categories.id_groupe_categorie
WHERE tutoriel_controle='non'
GROUP BY titre_categorie_nv1";
$nb_cat = mysqli_query($BDD_connect, $query_nb_cat)or die(log_mysql($query_nb_cat));
$row_nb_cat = mysqli_fetch_assoc($nb_cat);
do {
$tableau_nb_cat[]=array(
'titre_cat_nv1'=>$row_nb_cat['titre_categorie_nv1'],
'compte_cat_nv1'=>$row_nb_cat['COUNT(*)'],
);
} while ($row_nb_cat = mysqli_fetch_assoc($nb_cat));
$val_cat=array(
'valeur_retour'=>$tableau_nb_cat
);
响应就像那样(在一个数组中):
'Arts & Loisirs' => '18'
'Cuisine' => '55'
'Informatique'=> '9'
现在使用Symfony2我的查询是这样的:
$result = $em->createQuery("SELECT b.titreCategorieNv1, COUNT(b.titreCategorieNv1)
FROM Video2LearnBddBundle:Tutoriels p
INNER JOIN p.idGroupeCategorie a
INNER JOIN a.titreCategorieNv1 b
WHERE p.tutorielControle='non'
GROUP BY b.titreCategorieNv1")
->getResult();
转储结果是这样的:
array (size=3)
0 =>
array (size=2)
'titreCategorieNv1' => string 'Arts & Loisirs' (length=14)
1 => string '18' (length=1)
1 =>
array (size=2)
'titreCategorieNv1' => string 'Cuisine' (length=7)
1 => string '55' (length=1)
2 =>
array (size=2)
'titreCategorieNv1' => string 'Informatique' (length=12)
1 => string '9' (length=1)
我怎么能得到这样的回复(和我的PHP代码一样)??:
'Arts & Loisirs' => '18'
'Cuisine' => '55'
'Informatique'=> '9'
谢谢
答案 0 :(得分:2)
只需更改最后一项功能:
$em->createQuery('YOUR SQL QUERY')->getArrayResult()
编辑:
抱歉,再次检查您的代码,但我不知道,您的旧代码如何产生该输出,因为在执行操作时,您正在创建一个包含数组元素和2个单独密钥的新数组。没有直接的水合物模式,例如你必须运行foreach。