Pada artikel kali ini kita akan membahas dan memahami bagaimana cara kerja routing pada Laravel. Router pada Laravel adalah bagian yang mengatur rute/jalur pada aplikasi yang kita bangun, router ini mengatur pintu masuk yang berupa request pada aplikasi, Ketika aplikasi menerima sebuat request dari pengguna, router akan memproses dan mengembalikan sebuah hasil dari proses tersebut.
Router juga mengimplementasikan standar HTTP yang artinya router juga memilah request berdasarkan HTTP method. Ketika kita mendefinisikan sebuah route dengan method GET maka kita tidak bisa melakukan request ke jalur tersebut dengan method POST, begitu juga sebaliknya.
Dengan kata lain, Router berfungsi untuk menangani request pengguna di URL kemudian mengarahkan aplikasi untuk memanggil halaman/resource tertentu.
Basic Routing
Pada dasarnya laravel route menerima 2 parameter yaitu url dan Closure
Route::get('url', function () {
return 'Hello';
});
File routes
Semua route laravel di definisikan dalam file routes yang terletak di dalam folder routes. Secara default terdapat 4 file route yang memiliki fungsi yang berbeda-beda
- api.php : File ini digunakan untuk membuat routing API.
- channels.php : File ini digunakan untuk membuat routing yang bersifat broadcasting event, seperti notification.
- console.php : File ini digunakan untuk membuat routing command yang berjalan di terminal.
- web.php : File ini digunakan untuk membuat routing web dan ditetapkan sebagai grup middleware web, yang menyediakan fitur seperti session dan CSRF protection.
Pada tutorial kali ini kita akan menggunakan route web.php untuk memahami cara kerja router.
Contoh
Route::get('blog', function () {
return 'Ini halaman blog';
});
Keterangan
- get: HTTP method yang diizinkan untuk menjalankan fungsi pada route.
- blog: alamat URI yang ingin diakses untuk menjalankan fungsi pada route.
- return ‘Ini halaman blog’: Hasil yang akan ditampilkan ke pengguna.
Untuk mencoba route diatas, kita bisa mengakses URL https://localhost:8000/blog dari browser kita.

Router Methods
Seperti yang telah dibahas sebelumnya bahwa router juga memilah request berdasarkan HTTP method, sehingga kita bisa mendefinisikan sebuah route untuk merespon HTTP verb.
Route::get($uri, $callback);
Route::post($uri, $callback);
Route::put($uri, $callback);
Route::patch($uri, $callback);
Route::delete($uri, $callback);
Route::options($uri, $callback);
Untuk beberapa kasus kita mungkin perlu untuk mendaftarkan sebuah route untuk merespon beberapa HTTP verb. Misalnya, kita harus mengizinkan url blog untuk merespon request GET dan POST, dalam kasus ini kita bisa menggunakan method match
.
Route::match(['get', 'post'], 'blog', function () {
return 'Ini halaman blog';
});
Untuk mencoba method POST kita bisa menggunakan Postman.

Redirect Routes
Router tidak hanya menampilkan sebuah hasil ke pengguna, akan tetapi bisa digunakan juga untuk redirect ke URL lain.
Route::redirect('blog', 'new-blog');
Route::get('new-blog', function () {
return 'Ini halaman blog baru';
});
Ketika kita mengakses https://localhost:8000/blog maka kita akan diarahkan ke halaman https://localhost:8000/new-blog
View Routes
Router juga bisa menampilkan halaman view.
Route::view('new-blog', 'blog');
Method diatas akan menampilkan konten di dalam file blog.blade.php dalam directory resources/views ketika pengguna mengakses halaman https://localhost:8000/new-blog
Route Parameters
Terkadang saat membuat sebuah URI, kita perlu mengirimkan sebuah parameter yang merupakan bagian dari segmen URI dalam route kita untuk kemudian di proses. Oleh karena itu, router Laravel juga mengizinkan kita untuk mengirimkan parameter sehingga kita bisa mengolah parameter ini nantinya.
Required Parameters
Parameter route selalu terbungkus dalam kurung kurawal “{}” dan harus terdiri dari karakter alfabet.
Route::get('page/{page}', function ($page) {
return "Ini halaman {$page}";
});
Kita bisa https://localhost:8000/page/about atau https://localhost:8000/page/contact untuk melihat hasilnya.

Kita juga bisa mendefinisikan banyak parameter dalam satu route.
Route::get('page/{page}/comments/{comment}', function ($page, $comment) {
//
});
Optional Parameters
Untuk beberapa kasus kita mungkin membutuhkan sebuah parameter yang bersifat opsional. Untuk membuat parameter opsional kita perlu menambahkan tanda tanya (?) setelah nama parameter.
Route::get('blog/posts/{page?}', function ($page = 1) {
return "Posts halaman {$page}";
});
Ketika pengguna mengakses halaman blog/posts tanpa parameter, maka parameter $page
bernilai 1 secara default.


No Comments
Leave a comment Cancel