私はショッピングカートを設計しています。これは、コントローラーでの支払いアクションです。
public function paymentAction()
{
$em = $this->getDoctrine()->getManager();
$securityContext = $this->container->get('security.context');
$userid=$securityContext->getToken()->getUser()->getId();
$total = $em->getRepository('ShopperShopBundle:Item')->getTotal1($userid);//get total price
// var_dump($total);exit;
//update order table
$order = new Order();
$order->setUser1($em->getReference('ShopperShopBundle:User', $userid))
->setTprice($total[0][1])
->setStatus('Incomplete');
//var_dump($order);exit;
$em->persist($order);
//empty the cart
$remove = $em->getRepository('ShopperShopBundle:Item')->findBy(array('user'=>$userid));
if (!$remove) {
throw $this->createNotFoundException(
'Your Cart is empty. If you checked out recently and revisiting the cart, the items are lost. You can go to orders and complete your incomplete transaction. :-('
);
}
$em->remove($remove[0]);
$em->flush();
return $this->render('ShopperShopBundle:Default:payment.html.twig',array('categories'=>0,'total'=>$total[0][1]));
}
Order テーブルに 2 回挿入します。しかし、戻る前に終了すると、注文は一度だけ挿入されます。
これらは私のルートです。
shopper_shop_checkout:
pattern: /checkout
defaults: { _controller: ShopperShopBundle:Default:checkout }
shopper_shop_payment:
pattern: /payment
defaults: { _controller: ShopperShopBundle:Default:payment }
さらに情報が必要な場合は、コメントで質問してください。ページのレンダリング中に問題が発生しました。どういうわけか、挿入クエリが再度呼び出されます。