Router pada laravel, apa itu router? Pada artikel ini saya hanya akan berbagi berdasarkan pengalaman saya sendiri, saya sendiri kali ini menggunakan laravel versi 5.8, dimana pada versi laravel ini file router-nya sudah di pisahkan berdasarkan fungsi dan kegunaannya (ada web.php untuk router webnya, ada api.php untuk penggunaan route api dll). Sebetulnya, pada artikel sebelumnya (https://soft-gain.com/2019/07/21/crud-pada-laravel-mysql/) router sudah pernah kita pakai, artikel ini hanya mencoba menjelaskan lebih mendalam tentang apa itu router dan beberapa fitur yang tersedia di dalamnya.
Router sendiri terdiri dari beberapa http method request yang bisa di pakai, seperti GET, POST, PUT, DELETE dan lain-lain. Untuk pembahasan kali ini kita akan coba menggunakan method GET. Buka file router web.php dan coba ketikan code berikut :
Route::get('/coba', function(){
return 'Berhasil!';
});
Maka seharusnya keluar hasil seperti ini :

Pada contoh di atas, kita mendaftarkan ‘coba’ pada router dengan menggunakan method get. Lalu pada address URL kita tinggal panggil sesuai dengan apa yang sudah di daftarkan.
Kita juga bisa menambahkan parameter yang bersifat dinamis pada router yang hendak kita daftarkan, contohnya seperti ini :
Route::get('/coba/{parameter}', function($parameter){
return 'Parameternya adalah '.$parameter;
});
Hasilnya seperti ini :

Fitur parameter ini tentu saja bisa kita manfaatkan untuk olah data yang bersifat dinamis, seperti meng-post ID table yang nantinya akan kita gunakan untuk meng-query data.
Selain itu, ada satu fitur yang saya sering gunakan yaitu grouping pada router. Dengan grouping ini saya bisa men-share atribute tertentu pada banyak router sekaligus. Contohnya tanpa grouping seperti ini :
Route::get('belajar/coba-satu/{parameter}', function($parameter){
return 'Parameternya adalah '.$parameter;
});
Route::get('belajar/coba-dua/{parameter}', function($parameter){
return 'Parameternya adalah '.$parameter;
});
Route::get('belajar/coba-tiga/{parameter}', function($parameter){
return 'Parameternya adalah '.$parameter;
});
Route::get('belajar/coba-empat/{parameter}', function($parameter){
return 'Parameternya adalah '.$parameter;
});
Route::get('belajar/coba-lima/{parameter}', function($parameter){
return 'Parameternya adalah '.$parameter;
});
Sebernanya tidak ada yang salah code di atas, hanya saja terkesan berulang-ulang dan tidak efisien. Berikut ini contoh dengan grouping :
Route::group(['prefix' => 'belajar'], function() {
Route::get('/coba-satu/{parameter}', function($parameter){
return 'Parameternya adalah '.$parameter;
});
Route::get('/coba-dua/{parameter}', function($parameter){
return 'Parameternya adalah '.$parameter;
});
Route::get('/coba-tiga/{parameter}', function($parameter){
return 'Parameternya adalah '.$parameter;
});
Route::get('/coba-empat/{parameter}', function($parameter){
return 'Parameternya adalah '.$parameter;
});
Route::get('/coba-lima/{parameter}', function($parameter){
return 'Parameternya adalah '.$parameter;
});
});
Pada contoh di atas, kita mendefinisikan atribut prefix sebagai ‘belajar’, dimana semua router yang ada di dalam group memiliki satu kata yang sama pada segmen sebelumnya yaitu ‘belajar’. Maka kita tidak perlu mendifinisikan kata ‘belajar’ satu persatu pada router. Sebenarnya grouping ini juga akan efektif di gunakan dengan middleware, jadi kita cukup mendifinisikan satu middleware sehingga middleware tersebut akan diterapkan pada keseluruhan isi group. Untuk penjelasan apa itu middleware akan di bahas pada kesempatan berikutnya.
Ada lagi fitur yang saya rasa cukup memudahkan pekerjaan, yaitu route::resources. Dengan resources, kita cukup mendefinisikan satu router, yang nantinya akan secara otomatis meng-generate 7 method default yaitu index, create, store, show, edit, update, dan destroy. Contoh :
Route::resource('/transaksi', 'sg_transaksi');
Maka hasilnya seperti ini :

Untuk penjelasan yang lebih detail lagi bisa di baca pada dokumentasi laravel itu sendiri (https://laravel.com/docs/5.8/routing). Sekian pembahan kali ini semoga bisa bermanfaat. Terima Kasih