I'm working in CakePHP 3.2 and building a shopping cart.
I'm using Cookie
component to store the products in the cart.
This is what I'm doing to add products to the cart
public function addToCart()
{
$this->loadModel('Products');
if ($this->request->is('post')) {
$p_id = $this->request->data('product_id');
$p_quantity = $this->request->data('qnty');
$product = $this->Products->get($p_id);
if (!$product) {
throw new NotFoundException(__('Invalid Product'));
}
$this->Cookie->write('Cart',
['id' => $p_id, 'quantity' => $p_quantity]);
$itemsCount = count($this->Cookie->read('Cart'));
$this->Flash->success(__('Product added to cart'));
return $this->redirect($this->referer());
}
}
How could I add multidimensional array in Cookie because Cart can have multiple products and each product carry multiple value.
Also, How could I print in view
of cart()
method ?
This is how my cart()
method is
public function cart()
{
$cart_products = $this->Cookie->read('Cart');
$this->set('cart_products', $cart_products);
}
and printing in view as
foreach($cart_products as $c_product):
echo $c_product->id.' : '.$c_product->quantity; // line 45
endforeach;
But this gives error as
Trying to get property of non-object [ROOT/plugins/ArgoSystems02/src/Template/Orders/cart.ctp, line 45]