mirror of
https://github.com/Sylius/Sylius.git
synced 2026-07-14 09:02:12 +00:00
Simplify the removal of cart item, modify the ItemResolverInterface
This commit is contained in:
parent
557e8a1249
commit
09f547fb74
3 changed files with 21 additions and 16 deletions
|
|
@ -50,7 +50,9 @@ class CartController extends ResourceController
|
|||
public function addItemAction(Request $request)
|
||||
{
|
||||
$cart = $this->getCurrentCart();
|
||||
$item = $this->getResolver()->resolveItemToAdd($request);
|
||||
$emptyItem = $this->getCartItemManager()->create();
|
||||
|
||||
$item = $this->getResolver()->resolve($emptyItem, $request);
|
||||
|
||||
if (!$item) {
|
||||
$this->setFlash('error', 'sylius_cart.flashes.add.error');
|
||||
|
|
@ -79,13 +81,14 @@ class CartController extends ResourceController
|
|||
* Removes item from cart.
|
||||
*
|
||||
* @param Request $request
|
||||
* @param mixed $id
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function removeItemAction(Request $request)
|
||||
public function removeItemAction(Request $request, $id)
|
||||
{
|
||||
$cart = $this->getCurrentCart();
|
||||
$item = $this->getResolver()->resolveItemToRemove($request);
|
||||
$item = $this->getCartItemManager()->find($id);
|
||||
|
||||
if (!$item || false === $cart->hasItem($item)) {
|
||||
$this->setFlash('error', 'sylius_cart.flashes.remove.error');
|
||||
|
|
@ -187,6 +190,16 @@ class CartController extends ResourceController
|
|||
;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get cart item manager.
|
||||
*
|
||||
* @return ResourceManagerInterface
|
||||
*/
|
||||
protected function getCartItemManager()
|
||||
{
|
||||
return $this->get('sylius_cart.manager.item');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get cart provider.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -16,7 +16,6 @@ use Symfony\Component\HttpFoundation\Request;
|
|||
|
||||
/**
|
||||
* Resolver returns cart item that needs to be added based on request.
|
||||
* Should be called only when adding/removing items.
|
||||
*
|
||||
* @author Paweł Jędrzejewski <pjedrzejewski@diweb.pl>
|
||||
*/
|
||||
|
|
@ -24,19 +23,12 @@ interface ItemResolverInterface
|
|||
{
|
||||
/**
|
||||
* Returns item to add.
|
||||
* It takes empty and clean item object as first argument.
|
||||
*
|
||||
* @param CartItemInterface $item
|
||||
* @param Request $request
|
||||
*
|
||||
* @return CartItemInterface
|
||||
*/
|
||||
public function resolveItemToAdd(Request $request);
|
||||
|
||||
/**
|
||||
* Returns item to remove.
|
||||
*
|
||||
* @param Request $request
|
||||
*
|
||||
* @return CartItemInterface
|
||||
*/
|
||||
public function resolveItemToRemove(Request $request);
|
||||
public function resolve(CartItemInterface $item, Request $request);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,5 +18,5 @@ sylius_cart_item_add:
|
|||
defaults: { _controller: sylius_cart.controller.cart:addItemAction }
|
||||
|
||||
sylius_cart_item_remove:
|
||||
pattern: /item/remove
|
||||
pattern: /item/{id}/remove
|
||||
defaults: { _controller: sylius_cart.controller.cart:removeItemAction }
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue