(Aplikasi Books Store) - Part 2: Create dan Update (Tambah & Edit Buku)
Pelajari cara membangun aplikasi Books Store sederhana dengan Laravel, lengkap dengan fitur CRUD untuk mengelola data buku.
Baca SelengkapnyaKita telah berhasil membuat fitur untuk menampilkan, menambah, dan mengedit data buku. Di bagian terakhir ini, kita akan melengkapi siklus CRUD dengan fitur Delete (menghapus) untuk menghapus data buku dari database. Selain itu, kita juga akan merapikan sedikit tampilan untuk memudahkan navigasi.
Menghapus data adalah operasi yang harus dilakukan dengan hati-hati. Kita akan menggunakan method destroy di controller untuk menangani proses ini.
destroy di ControllerBuka app/Http/Controllers/BookController.php dan tambahkan method destroy.
// ...
class BookController extends Controller
{
// ... semua method sebelumnya
public function destroy(Book $book)
{
$book->delete();
return redirect('/books')->with('success', 'Buku berhasil dihapus!');
}
}
Sama seperti edit dan update, kita menggunakan Route Model Binding (Book $book) untuk secara otomatis menemukan buku yang akan dihapus. Perintah $book->delete() akan menghapus record dari database.
Tambahkan route DELETE ke routes/web.php.
// ...
Route::get('/books/{book}/edit', [BookController::class, 'edit']);
Route::put('/books/{book}', [BookController::class, 'update']);
Route::delete('/books/{book}', [BookController::class, 'destroy']);
Perhatikan bahwa kita menggunakan method DELETE.
Kita akan menambahkan tombol "Hapus" di halaman daftar buku (resources/views/books/index.blade.php). Karena form HTML tidak mendukung method DELETE, kita akan menggunakan form kecil yang disembunyikan.
<td>
<a href="/books/{{ $book->id }}/edit">Edit</a>
<form action="/books/{{ $book->id }}" method="POST" style="display:inline;">
@csrf
@method('DELETE')
<button type="submit" onclick="return confirm('Apakah Anda yakin ingin menghapus buku ini?')" style="border:none; background:none; color:red; cursor:pointer;">Hapus</button>
</form>
</td>
Klik tombol "Hapus" pada salah satu buku. Sebuah konfirmasi akan muncul. Jika Anda klik "OK", buku akan terhapus dari database dan halaman akan di-refresh.
Agar aplikasi lebih mudah digunakan, mari kita tambahkan beberapa tautan navigasi dan pesan status.
Tambahkan tautan di index.blade.php yang mengarahkan ke halaman tambah buku.
<body>
<h1>Daftar Buku</h1>
<a href="/books/create">Tambah Buku Baru</a>
</body>
Kita sudah menggunakan ->with('success', '...') di controller. Sekarang, kita bisa menampilkannya di view index.blade.php.
<body>
<h1>Daftar Buku</h1>
<a href="/books/create">Tambah Buku Baru</a>
@if (session('success'))
<div style="background-color: lightgreen; padding: 10px; margin-bottom: 10px;">
{{ session('success') }}
</div>
@endif
</body>
Pesan ini akan muncul setelah berhasil menambah, mengedit, atau menghapus buku.
Selamat! Anda telah berhasil membangun aplikasi Books Store sederhana dengan Laravel, lengkap dengan semua fitur CRUD:
Create: Menambah buku baru
Read: Menampilkan daftar buku
Update: Mengedit data buku yang sudah ada
Delete: Menghapus buku
Tutorial ini adalah fondasi yang kuat untuk proyek-proyek Laravel Anda selanjutnya. Anda bisa mengembangkan aplikasi ini lebih jauh dengan fitur-fitur seperti validasi yang lebih canggih, tampilan yang lebih menarik menggunakan CSS, pencarian, dan banyak lagi. Teruslah bereksplorasi!