Hi I am trying to remove a single line in my array it is stored in a session
I hope someone can help me out with deleting the single line
Shop controller:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Validator;
use App\Category;
use App\Product;
class ShopController extends Controller {
public function index() {
$categories = Category::with('products')->get();
return view('shop/index', compact('categories'));
}
public function category($id) {
$products = Category::find($id)->products;
return view('shop/product', compact('products'));
}
public function addToShoppingCart(Request $request) {
$data = $this->validate($request, [
'id' => 'required|integer|min:1|max:2147483647',
'amount' => 'required|integer|min:1|max:100',
]);
$currentCart = $request->session()->get('cart');
if (!is_array($currentCart)) {
$currentCart = [];
}
if (array_key_exists($data['id'], $currentCart)){
$currentCart[$data['id']]+= $data['amount'];
}else{
$currentCart[$data['id']] = $data['amount'];
}
$request->session()->put('cart', $currentCart);
return Redirect()->action('ShopController@cart');
}
public function clear(Request $request) {
$request->session()->flush();
return Redirect()->back();
}
public function cart(Request $request) {
$cart = $request->session()->get('cart');
return view('shop/cart', [
'cart' => (is_array($cart) ? $cart:[]),
]);
}
public function delete(Request $request) {
$request->session()->forget('id', 'amount');
return Redirect()->back();
}
}
My cart view:
@extends('layouts.app')
@section('content')
@forelse ($cart as $id => $amount)
<div class="container">
<li>Product: {{$id}}, Hoeveelheid: {{$amount}}</li>
<a class="btn btn-danger" href="{{ action('ShopController@delete') }}">Product verwijderen</a>
<a href="{{ action('ShopController@clear') }}">Winkelwagen legen</a>
</div>
{{--{{ dd($cart) }}--}}
@empty
<div class="container">
Er is nog niks in uw winkelwagen!
</div>
@endforelse
@endsection