Dengan menggunakan Route::resource kita bisa dengan mudah mendapatkan semua end point yang mungkin saja diperlukan pada aplikasi yang kita buat. Untuk menggunakannya bisa dilihat pada catatan sebelumnya.
Namun bagaimana jika kita tidak menggunakan semua end point tersebut?
Ternyata kita bisa membatasi end point yang kita gunakan dengan masih menggunakan Route::resource. Caranya adalah dengan menambahkan satu parameter dengan keyword only
Route::resource('[prefik pada end point]','[nama controller]',['only' => ['end point yang dipilih']]);
Misalnya kita hanya ingin menggunakan action index dan show saja, maka kita bisa menuliskan kode berikut
Route::resource('buyers','Buyer\BuyerController',['only' => ['index','show']]);
maka hanya dua controller itu saja yang akan ada pada daftar route
Lalu bagaimana jika kita ingin sebaliknya, yaitu kita malah tidak ingin menampilkan sebagian route saja. Kita tahu jika tanpa menggunakan filtering seperti ini maka kita akan mendapatkan tujuh end point yaitu index, store, create, show, update, destroy, dan edit. Jika kita ingin tidak menampilkan action yang tidak kita inginkan caranya adalah dengan menggunakan keyword except
Route::resource('[prefik pada end point]',['except' => ['nama action yang tidak ingin ditampilkan']]);
Misalnya kita tidak ingin menampilkan route dari action create dan edit, kita bisa menuliskan kode berikut
Route::resource('categories','Category\CategoryController',['except' => ['create','edit']]);
Maka dari perintah php artisan route:list, kita bisa melihat bahawa end point untuk create dan edit sudah tidak ada dalam daftar route
Kalau mau nambahin dilluar 7 end point itu gimana gan, apa harus manual?
tinggal ditambahkan saja. Tapi beri perbedaan dengan end point tersebut. Misal saya mau tambah method level di controller categories, saya bisa tambah route baru seperti berikut
Route::get(‘categories/levels’, ‘CategoriesController@levels’);
dan di controller CategoriesController bisa ditambahkan method levels