src/Controller/CartController.php line 37

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Model\Cart;
  4. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  5. use Symfony\Component\HttpFoundation\Response;
  6. use Symfony\Component\Routing\Annotation\Route;
  7. class CartController extends AbstractController
  8. {
  9.     /**
  10.      * Récupère un panier détaillé contenant des objets Products et les totaux de quantité et de prix 
  11.      * 
  12.      * @param Cart $cart
  13.      * @return Response
  14.      */
  15.     #[Route('/mon-panier'name'cart')]
  16.     public function index(Cart $cart): Response
  17.     {
  18.         $cartProducts $cart->getDetails();
  19.         return $this->render('cart/index.html.twig', [
  20.             'cart' => $cartProducts['products'],
  21.             'totalQuantity' => $cartProducts['totals']['quantity'],
  22.             'totalPrice' =>$cartProducts['totals']['price']
  23.         ]);
  24.     }
  25.     /**
  26.      * Ajoute un article au panier (id du produit) et incrémente la quantitée (voir classe Cart)
  27.      * @param Cart $cart
  28.      * @param int $id
  29.      * @return Repsonse
  30.      */
  31.     #[Route('/panier/ajouter/{id}'name'add_to_cart')]
  32.     public function add(Cart $cartint $id): Response
  33.     {
  34.         $cart->add($id);
  35.         return $this->redirectToRoute('cart');
  36.     }
  37.     /**
  38.      * Réduit de 1 la quantité pour un article du panier
  39.      * @param Cart $cart
  40.      * @param int $id
  41.      * @return Repsonse
  42.      */
  43.     #[Route('/panier/réduire/{id}'name'decrease_item')]
  44.     public function decrease(Cart $cartint $id): Response
  45.     {
  46.         $cart->decreaseItem($id);
  47.         return $this->redirectToRoute('cart');
  48.     }
  49.     
  50.     /**
  51.      * Supprime une ligne d'articles du panier
  52.      *
  53.      * @param Cart $cart
  54.      * @return Response
  55.      */
  56.     #[Route('/panier/supprimer/{id}'name'remove_cart_item')]
  57.     public function removeItem(Cart $cartint $id): Response
  58.     {
  59.         $cart->removeItem($id);
  60.         return $this->redirectToRoute('cart');
  61.     }
  62.     /**
  63.      * Vide le panier entièrement
  64.      *
  65.      * @param Cart $cart
  66.      * @return Response
  67.      */
  68.     #[Route('/panier/supprimer/'name'remove_cart')]
  69.     public function remove(Cart $cart): Response
  70.     {
  71.         $cart->remove();
  72.         return $this->redirectToRoute('product');
  73.     }
  74. }