Update
Inleiding
Voor de update functie gaan we een knopje maken in ons overzicht.
Index View
We beginnen met het aanpassen van de index view. Plaats deze code als extra kolom in de tabel en vergeet niet ook een extra <th></th> te plaatsen. Het aantal kolommen in de tabel moet in alle regels gelijk zijn!
<td><a href="/stocks/edit/id={{$stock->id}}" class="btn btn-primary">Edit</a></td>
Route
We voegen een route toe in de web.php
Route::get('stocks/edit/{id}', [App\Http\Controllers\StockController::class, 'edit']);
Zodra we op de knop edit drukken in het overzicht (in de index.blade.php view) dan wordt de edit() function in deStockController aangeroepen. Het $id wordt bovendien meegegeven.
Controller
In de controller zetten we de volgende code in de edit() function.
public function edit($id)
{
$stock = Stock::find($id);
return view('stocks.edit',['stock'=>$stock]); // -> resources/views/stocks/edit.blade.php
}
De edit() functie in de controller haalt het record met het id $is op en het record, $stock wordt aan de view edit.blade.php in de stocks folder meegegeven.
Edit View
We plaatsen de volgende code in de edit.blade.php file in de stocks view. Deze file moeten we aanmaken.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<title>Stocks</title>
</head>
<body>
<div class="container" style="margin:40px;">
<h1 class="display-3">Stocks</h1>
<form method="post" action="/stocks/update/{{$stock->id}}">
@csrf
<div class="form-group">
<label for="stock_name">Stock Name:*</label>
<input type="text" class="form-control" name="stock_name" value="{{ $stock->stock_name }}" />
</div>
<div class="form-group">
<label for="ticket">Stock Ticket:*</label>
<input type="text" class="form-control" name="ticket" value="{{ $stock->ticket }}" />
</div>
<div class="form-group">
<label for="value">Stock Value:</label>
<input type="text" class="form-control" name="value" value="{{ $stock->value }}" />
</div>
<button type="submit" class="btn btn-primary">Update</button>
</form>
</div>
</body>
</html>