I have an array in a session and need to remove an item only. I put
session()->forget('cart')
It removes all items. What is the correct way to remove only one?
Controller
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Product;
use Illuminate\Support\Facades\Session;
class ProductsController extends Controller
{
public function index()
{
return view('product.index');
}
public function store(Request $request)
{
$product = $request->all();
session()->push('cart', $product);
return redirect()->back();
}
}
View:
<div class="container">
<div class="row">
<div class="col-md-12">
<div class="panel panel-default">
<div class="panel-heading">Produtos</div>
<div class="panel-body">
<table class="table m-0" id="products-table">
<thead>
<tr>
<th>Produto</th>
<th>Alterar</th>
<th>Excluir</th>
</tr>
</thead>
<tbody class="row">
@if(session()->get('cart'))
@foreach(session()->get('cart') as $key => $product)
<tr>
<td>{{ $product['name'] }}</td>
<td><a href="#">Alterar</a></td>
<td><a href="{{ session()->forget('key') }}">Excluir</a></td>
</tr>
@endforeach
@endif
</tbody>
<tfoot>
<tr>
<td colspan="5" style="text-align: left;">
<button type="button" class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">Incluir</button>
</td>
</tr>
</tfoot>
</table>
</div>
</div>
</div>
</div>
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title" id="myModalLabel">Modal title</h4>
</div>
<form method="post" action="{{ route('product.store') }}">
{{ csrf_field() }}
<div class="modal-body">
<input type="text" class="form-control" name="name">
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Fechar</button>
<button type="submit" class="btn btn-primary">Salvar</button>
</div>
</form>
</div>
</div>