🎯 Tujuan
Mampu menghapus data produk serta menambahkan validasi form sederhana pada fitur create dan update.
🧩 Materi & Langkah Praktik
1. Tambahkan Route Delete
Edit file routes/web.php:
use App\Http\Controllers\ProductController;
Route::delete('/products/{id}', [ProductController::class, 'destroy'])->name('products.destroy');
2. Tambahkan Method destroy di Controller
Edit file app/Http/Controllers/ProductController.php:
public function destroy($id)
{
$product = Product::findOrFail($id);
$product->delete();
return redirect()->route('products.index')->with('success', 'Produk berhasil dihapus!');
}
3. Tambahkan Tombol Hapus di Tabel Produk
Edit file resources/views/products/index.blade.php, pada bagian kolom Aksi tambahkan tombol hapus:
<td>
<a href="{{ route('products.edit', $product->id) }}" class="btn btn-warning btn-sm">Edit</a>
<form action="{{ route('products.destroy', $product->id) }}" method="POST" class="d-inline">
@csrf
@method('DELETE')
<button class="btn btn-danger btn-sm" onclick="return confirm('Yakin ingin hapus?')">Hapus</button>
</form>
</td>
4. Tambahkan Validasi Form pada Method store dan update
Di ProductController.php, pada method store:
public function store(Request $request)
{
$request->validate([
'name' => 'required|min:3',
'price' => 'required|numeric|min:1000',
'stock' => 'required|integer|min:1',
]);
Product::create($request->all());
return redirect()->route('products.index')->with('success', 'Produk berhasil ditambahkan!');
}
Pada method update:
public function update(Request $request, $id)
{
$request->validate([
'name' => 'required|min:3',
'price' => 'required|numeric|min:1000',
'stock' => 'required|integer|min:1',
]);
$product = Product::findOrFail($id);
$product->update($request->all());
return redirect()->route('products.index')->with('success', 'Produk berhasil diperbarui!');
}
5. Tampilkan Pesan Error di Form
Tambahkan kode ini di atas tag <form> di resources/views/products/create.blade.php dan resources/views/products/edit.blade.php:
@if ($errors->any())
<div class="alert alert-danger">
<ul class="mb-0">
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
6. Jalankan Aplikasi
- Buka halaman
/products - Coba tambah produk baru (pastikan validasi berjalan)

- Edit produk (validasi juga berlaku)

- Hapus produk menggunakan tombol hapus

✅ Struktur Folder Penting
project-laravel/
├── app/
│ └── Http/
│ └── Controllers/
│ └── ProductController.php <-- Controller untuk operasi CRUD produk
├── resources/
│ └── views/
│ └── products/
│ ├── index.blade.php <-- Daftar produk + tombol edit & hapus
│ ├── create.blade.php <-- Form tambah produk + validasi error
│ └── edit.blade.php <-- Form edit produk + validasi error
├── routes/
│ └── web.php <-- Routing aplikasi (index, create, store, edit, update, delete)