Php Symfony2';这是一对多的关系

Php Symfony2';这是一对多的关系,php,symfony,Php,Symfony,我有两张桌子。第一个表是stat_alert,第二个表是user_qdf。我在表之间有一个多对一的关系 我想在外键表中赋值 在我的控制器中: $sql9="SELECT cell,id_user FROM stat_alert WHERE TYPE='C' AND id_user IS NULL LIMIT $purcent "; $h = mysql_query($sql9)OR DIE("Erreur sur la requeteee"); $listes9 = array()

我有两张桌子。第一个表是stat_alert,第二个表是user_qdf。我在表之间有一个多对一的关系

我想在外键表中赋值 在我的控制器中:

 $sql9="SELECT cell,id_user FROM stat_alert WHERE TYPE='C' AND id_user IS NULL LIMIT $purcent ";
  $h = mysql_query($sql9)OR DIE("Erreur sur la requeteee");

   $listes9 = array();
   while ($row = mysql_fetch_array($h)) {
     $listes9[] = $row;  
   }

   foreach ($listes9 as $liste9 )
   {
       $user_qdf = $this->getDoctrine()
        ->getRepository('AdminBlogBundle:UserQdf')
        ->find($cs);  
    echo $liste9[0];
       $em = $this->getDoctrine()->getEntityManager();
       $alert = $em->getRepository('AdminBlogBundle:StatAlert')
                    ->findBy(array('cell' => $liste9[0]));
       **$alert->setUser($user_qdf);**

    $em->flush();
   }

我有这个错误致命错误:在第514行的D:\EasyPHP-5.3.3.1\www\alerteurs1\src\Admin\BlogBundle\Controller\GestionAlerteController.php中对非对象调用成员函数setUser()返回一个集合,而不是一个对象。改用
findOneBy()
,应该没问题。

为什么在symfony 2应用程序中使用纯MySQL?我还没有找到如何使用Symfony2:(你没有用于
stat\u alert
的存储库类?没有类(实体)对于stat_Alerts,然后为其创建一个存储库类,就像您为UserQdf所做的那样。此外,
$sql9
$list9
对于变量来说都不是很好的命名方式……数字完全没有用,您最好用英语编写,不要在代码中混用法语/英语。谢谢您能给我一个解决此问题的方法我被困了将近2个小时;(不,你没有给出足够的上下文……你应该问自己的正确问题是:为什么我没有带“cell”值的行?你应该总是有一行吗?如果没有,你只需要在
$alert->setUser($user_qdf)之前添加
If($alert)
如果我写echo$list13[0];我有tun1409s1,不写
$list9[0]
,写
$list9['cell']]
,这更容易理解。无论如何,在尝试理解你的(相当脏的)代码一段时间后,问题似乎是
findBy()
返回一个集合,而不是一个对象。改为使用
findOneBy()
,应该可以。