我在findArray()函数中有错误

时间:2017-07-19 03:41:46

标签: php symfony session doctrine

我需要帮助,在symfony的项目中我遇到了findArray()方法的问题。 我想用array_keys($session>get('panier'))函数检索会话的内容,并使用其结果来查询我的数据库。 但只有symfony会返回此信息:

  

未定义的方法'findArray'。方法名称必须以findBy或findOneBy!

开头

但如果我在array_keys($session->get('basket'))上执行var_dump,我会在会话中找到项目。 显然,findArray方法无法识别。 这是我的控制器的内容:

public function validationAction(){
       if($this->get('request')->getMethod()=='POST'){
           $this->setLivraisonOnSession();
       }

       $em = $this->getDoctrine()->getManager();
       $session = $this->getRequest()->getSession();
       $adress=$session->get('adresse');
       /*var_dump(array_keys($session->get('panier')));
       die();*/
       $produits=$em->getRepository('SaressoSaressoBundle:Produits')->findArray(array_keys($session->get('panier'))
                                                                               );

       $livraison= $em->getRepository('SaressoSaressoBundle:UtilisateurAdresse')->find($adress['livraison']);
       $facturation= $em->getRepository('SaressoSaressoBundle:UtilisateurAdresse')->find($adress['facturation']);

       return $this->render('SaressoSaressoBundle:Default:panierVerification.html.twig',array('produits'=>$produits,                                                                                                   'livraison'=>$livraison,                                                                                                   'facturation'=>$facturation,                                                                                                   'panier'=>$session->get('panier')));
   }

Merci d'avance pourvosréponses

1 个答案:

答案 0 :(得分:0)

您需要改为:

$produits = $em->getRepository('SaressoSaressoBundle:Produits')
                    ->findBy(array_keys($session->get('panier')));

这应该有效。

编辑#2

抱歉,我的错误尝试编辑#2:

$produits = $em->getRepository('SaressoSaressoBundle:Produits')
                    ->find($session->get('panier'));

编辑#3

另外请试试这个:

$produits = $em->getRepository('SaressoSaressoBundle:Produits')
                        ->findOneBy(
                            array('id' => $session->get('panier'))
                        );

让我知道结果。