Laravel: Route


09/10/2016 11:03:12 243

Route merupakan perantara antara request yang yang diberikan oleh pengguna dengan resource yang terdapat pada sistem. Route pada laravel 5.* terletak pada app/Http/routes.php. Route pada Laravel terdiri atas tiga bagian utama yakni

  1. Methode. Method terdiri atas get, post, put, dan delete
  2. URL ialah string yang diketikan pada web browser oleh pengguna
  3. Resource yang dituju. Response yang diterima oleh pengguna

Format penulisan route pada laravel ialah sebagai berikut

Route::{method}('{url}', '{resources}');

Sedangkan contoh implementasinya ialah sebagai berikut:

Route::get('hello', function(){
    return "Hello World";
});

Parameter pada Route

Suatu route dapat berisi parameter. Parameter pada route ditandai dengan tanda {} berikut ialah contohnya:

Route::get('hello/{nama}', function($nama){
    return "Hello ". $nama;
});

Optional Parameter (default value)

Parameter dalam route dapat juga bersifat optional yakni dapat diisi atau tidak, dan biasanya terdapat nilai default untuk hal tersebut. Berikut ialah contohnya:

Route::get('hello/{nama?}', function($nama=null){
    return "Hello ".$nama;
});

atau dengan nilai tertentu

Route::get('hello/{nama?}', function($nama="rofil"){
    return "Hello ".$nama;
});

Menamai Route dan Generate URL

Untuk menggunakan route yang didefinisikan sangatlah mudah, seperti contoh diatas yakni dengan mengakses /hello/rofil atau jika dalam link menjadi <a href="/hello/rofil">Hello Rofil</a>. Namun, pendekatan ini memiliki kekurangan misalkan ketika ingin merubah struktur dari route. Suatu route dapat diberi penamaan dan jika kita membuat URL dari nama suatu route, maka ketika route diubah, maka URL yang digenerate juga ikut berubah. Berikut ialah cara membuat penamaan pada route dan bagaimana mengaksesnya.

// Contoh 1, route tanpa parameter
Route::get('/hello', array('as'=>'hello', function(){
    echo "Hello Word";
}));

// Penggunaan

$url = route('hello'); // Akan menghasilkan '/hello'

// Contoh 2, route dengan parameter
Route::get('/hello/{nama}', array('as'=>'hello', function($nama){
    echo "Hello $nama";
}));

// Penggunaan

$url = route('hello', array("nama" => "rofil")); // Akan menghasilkan '/hello/rofil'