コード例 #1
0
 /**
  * @Route("/auction/{id}", name="auction_payment_create", options={"expose"=true})
  * @ParamConverter("auction", class="WoojinStoreBundle:Auction")
  * @Method("POST")
  */
 public function createAction(Auction $auction, Request $request)
 {
     /**
      * DoctrineManager
      *
      * @var \Doctrine\ORM\EntityManager;
      */
     $em = $this->getDoctrine()->getManager();
     /**
      * 目前登入的使用者實體
      *
      * @var \Woojin\UserBundle\Entity\User
      */
     $user = $this->get('security.token_storage')->getToken()->getUser();
     /**
      * @var \Woojin\OrderBundle\Entity\PayType
      */
     $payType = $em->getRepository('WoojinOrderBundle:PayType')->find($request->request->get('pay_type'));
     /**
      * Amount
      *
      * @var integer
      */
     $amount = (int) $request->request->get('amount');
     /**
      * @var \DateTime
      */
     $paidAt = new \DateTime($request->request->get('paid_at'));
     /**
      * Session
      *
      * @var \Symfony\Component\HttpFoundation\Session\Session
      */
     $session = $this->get('session');
     /**
      * @var \Woojin\Service\Store\AuctionPaymentService
      */
     $service = $this->get('auction.payment.service');
     if (!$auction->isAllowedEditPayment($user)) {
         throw $this->createAccessDeniedException('Not allowed to edit this auction!');
     }
     try {
         $payment = $service->create(array('auction' => $auction, 'payType' => $payType, 'amount' => $amount, 'creater' => $user, 'paidAt' => $paidAt));
         $em->persist($payment);
         $em->flush();
         $session->getFlashBag()->add('success', '競拍付款新增成功!');
     } catch (\Exception $e) {
         $session->getFlashBag()->add('error', $e->getMessage());
     }
     return $this->redirect($this->generateUrl('goods_edit_v2', array('id' => $auction->getProduct()->getId())) . '/#_soldop');
 }