Resource Controller & Route::resource
Penjelasan
Aplikasi CRUD (Create, Read, Update, Delete) punya pola route yang berulang-ulang: index, create, store, show, edit, update, destroy. Laravel menyediakan php artisan make:controller --resource untuk generate ketujuh method itu sekaligus, dan Route::resource() untuk mendaftarkan ketujuh route-nya cuma dalam SATU baris.
Contoh Konsep
// Bikin resource controller lengkap:
// php artisan make:controller ProdukController --resource
// routes/web.php
Route::resource('produk', ProdukController::class);
// Setara dengan mendaftarkan manual:
// GET /produk -> index (produk.index)
// GET /produk/create -> create (produk.create)
// POST /produk -> store (produk.store)
// GET /produk/{produk} -> show (produk.show)
// GET /produk/{produk}/edit -> edit (produk.edit)
// PUT /produk/{produk} -> update (produk.update)
// DELETE /produk/{produk} -> destroy (produk.destroy)
Praktikum
Tulis satu baris Route::resource() untuk resource artikel yang mengarah ke ArtikelController. Sebutkan (sebagai komentar) nama ketujuh route yang otomatis terbentuk dari baris itu.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Kalau kamu cuma butuh sebagian route saja (mis. tidak butuh create dan edit karena form-nya lewat modal JS), pakai Route::resource('produk', ProdukController::class)->only(['index', 'store', 'destroy']) supaya route yang tidak dipakai tidak ikut terdaftar.