php - Remove element from session array in laravel 5 -
php - Remove element from session array in laravel 5 -
i newbie in laravel 5 , trying create ecommerce web application learning on own.
i have next array of products:
array:2 [▼ 0 => array:4 [▼ "productid" => 3 "quantity" => 2 "productname" => "testing product 3" "productrate" => 275.0 ] 1 => array:4 [▼ "productid" => 2 "quantity" => 2 "productname" => "testing product 2" "productrate" => 180.0 ] ]
now when user clicks on x
link in view of cart template, delete product session, removes total array of session cart on next page reload.
here's controller deleting product:
public function destroy($id) { if ( \session::has( 'cart' ) && is_array( \session::get('cart') ) ) { $cart = \session::get('cart'); ($i=0; $i < count($cart); $i++) { foreach ($cart[$i] $key => $value) { if ( $key === 'product' && $value == $id ) { unset( $cart[$i] ); } } } homecoming redirect('/cart')->with('cart', $cart); } }
i tried this:
unset( $cart[$i][$key] )
but gave me undefined index
error.
kindly guide me have made error , solution it.
update 1:
here's index function:
public function index() { $cart = \session::get('cart'); homecoming view('cart.index')->with('cart', $cart); }
update 2: per discussion, here's destroy function:
public function destroy($id) { if ( \session::has( 'cart' ) && is_array( \session::get('cart') ) ) { $cart = \session::get('cart'); foreach ($cart $index => $product) { if ($product['productid'] == $id) { unset($cart[$index]); } } session(['cart' => $cart]); homecoming redirect('/cart'); } }
i suggest utilize foreach
instead of for
loop through array. because might error if array key not start 0
or there skip array key 0,1,3
.
foreach ($cart $index => $product) { if ($product['productid'] == $id) { unset($cart[$index]); } } session(['cart' => $cart]);
i update code update $cart
value (after removed product) session.
update not need with function
after redirect function
return redirect('/cart')->with('cart', $cart);
to
return redirect('/cart');
php arrays session laravel laravel-5
Comments
Post a Comment