Symfony2 - 从SQL获取数组

时间:2014-06-11 13:44:19

标签: arrays symfony

在使用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' 

谢谢

1 个答案:

答案 0 :(得分:2)

只需更改最后一项功能:

$em->createQuery('YOUR SQL QUERY')->getArrayResult()

编辑:

抱歉,再次检查您的代码,但我不知道,您的旧代码如何产生该输出,因为在执行操作时,您正在创建一个包含数组元素和2个单独密钥的新数组。没有直接的水合物模式,例如你必须运行foreach。