购物车Symfony与两个不同的项目

时间:2017-08-23 08:27:01

标签: php symfony

我在symfony中创建购物车时遇到一些问题。 我必须为销售治疗和治疗的酒店创建一个购物车(预订系统),所以我有两种类型的产品可以添加到我的购物车中(两个实体:治疗和治疗)。

Probleme

在我的Paniercontroller中,我创建了购物车,其中购物车中每件商品的ID是固化的ID(如果我添加固化)和治疗ID(我添加治疗),所以当我有两个具有相同ID的项目时,新项目删除旧项目(可能因为治疗和治疗可以有相同的ID,每个人都在不同的表中)

在加入购物车之前,我去测试项目是否已经治愈或治疗。我也想为每个人创造不同的行动,但我不知道这是否能解决问题。 如果有人知道如何做到这一点,谢谢你的帮助。

这是我的Paniercontroller:

 public function panierAction()
{
    $session = $this->getRequest()->getSession();
    //$session->remove('panier');
    //die();
    if( !$session->has('panier')) $session->set('panier',array());
    var_dump($session->get('panier'));
    die();
    $em = $this->getDoctrine()->getManager();
    $cures = $em->getRepository('MainBundle:Cure')->findArray(array_keys($session->get('panier')));
    $treatments = $em->getRepository('MainBundle:Treatment')->findArray(array_keys($session->get('panier')));
    return $this->render('CmsBundle:Default:reservation-cure-step2.html.twig', array(
        'cures' => $cures,
        'treatments' => $treatments,
        'panier' => $session->get('panier'),
    ));
}
 public function ajouterAction($id)
{
    $session = $this->getRequest()->getSession();
    if( !$session->has('panier')) $session->set('panier',array());
    //$panier [id du produit] ==> quantite
    $panier= $session->get('panier');
    if(array_key_exists($id, $panier))
    {
        if($this->getRequest()->query->all() != null )
            $panier[$id] = $this->getRequest()->query->all();

    }else{
        if($this->getRequest()->query->all() != null)
            $panier[$id] = $this->getRequest()->query->all();

        else
             $panier[$id] = 1;
    }
    $session->set('panier',$panier);
    $this->get('session')->getFlashBag()->add('success','élement ajouté avec succés');
    return $this->redirect($this->generateUrl('panier'));
}


 public function supprimerAction($id)
{
      $session = $this->getRequest()->getSession();
      $panier = $session->get('panier');
    if(array_key_exists($id, $panier))
    {
        unset($panier[$id]);
        $session->set('panier',$panier);
        $this->get('session')->getFlashBag()->add('success','élement supprimé avec succés');
    }
     return $this->redirect($this->generateUrl('panier'));
}

}

0 个答案:

没有答案