Study
Laravel

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.

Editor Latihan

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.