Untuk merubah data yang sudah tersimpan kedalam database, kita harus membuat route yang mengarahkan ke halaman edit. Sebelumnya arahkan tombol edit yang ada pada halaman /buku
<a href="/buku/{{ $b->id }}/edit"class="btn btn-warning">Edit</a>
Selanjutnya buat route yang mengarah ke halaman /buku/edit
Route::get('/buku/{id}/edit', [BukuController::class, 'edit']);
Selanjutnya kita akan menambah method baru pada BukuController
public function edit($id)
{
$data = [
'title' => "Edit Data Buku",
'buku' => Buku::find($id)
];
return view('buku.edit')->with($data);
}
Setelah itu buat halaman edit.blade.php untuk menampilkan data dari database
@extends('layouts.main')
@section('container')
<h1>Edit Data Buku</h1>
<div class="border p-3">
<form action="/buku/{{ $buku->id }}" method="POST">
@csrf
<div class="mb-3">
<label class="form-label">Judul Buku</label>
<input type="text" class="form-control" name="judul" value="{{ $buku->judul }}">
</div>
<div class="mb-3">
<label class="form-label">Nama Penulis</label>
<input type="text" class="form-control" name="penulis" value="{{ $buku->penulis }}">
</div>
<div class="mb-3">
<label class="form-label">Penerbit Buku</label>
<input type="text" class="form-control" name="penerbit" value="{{ $buku->penerbit }}">
</div>
<div class="mb-3">
<label class="form-label">Tahun Terbit</label>
<input type="text" class="form-control" name="tahun_terbit" value="{{ $buku->tahun_terbit }}">
</div>
<a href="/buku" class="btn btn-warning">Kembali</a>
<button type="submit" class="btn btn-info">Edit</button>
</form>
</div>
@endsection
Maka hasilnya adalah sebagai berikut
Agar tombol edit bisa menjalankan perintah untuk merubah data maka buat methode update pada BukuController
public function update($id, Request $request)
{
$buku = Buku::find($id);
$buku->update($request->except(['_token', 'submit']));
return redirect('/buku');
}
Tambahkan juga sebuah route yang akan memproses method update pada web.php
Route::post('/buku/{id}', [BukuController::class, 'update']);
DELETE
Untuk menghapus data terlebih dahulu silahkan tambahkan route untuk menghapus data
Route::post('/buku/{id}', [BukuController::class, 'destroy']);
Setelah itu silahkan buat methode destroy pada controller buku
public function destroy($id)
{
$buku = Buku::find($id);
$buku->delete();
return redirect('/buku');
}
Kemudian pada halaman index.blade.php di folder buku, tambahkan tombol hapus
<div class="btn-toolbar" role="toolbar" aria-label="Toolbar with button groups">
<a href="/buku/{{ $b->id }}/edit"class="btn btn-warning me-2 mb-1">Edit</a>
<form action="/buku/{{ $b->id }}" method="POST">
@csrf
<input type="submit" class="btn btn-danger" value="Hapus">
</form>
</div>