Tutorial Laravel 5.5 - Routing (Bagian 2)


Pada artikel kali ini akan dibahas mengenai penggunaan Routing pada Framework Laravel 5.5. Pembahasan routing ini hanya akan membahas hal-hal yang sekiranya sering digunakan secara umum. Routing pada versi 5.5 ini terdapat dalam folder routes. File routes/web.php digunakan untuk routing dari program secara umum dan menggunakan group middleware web yang sudah mencakup penggunaan session dan CSFR Protection. Pembahasan mengenai middleware dan CSFR Protection akan diberikan pada artikel-artikel selanjutnya.

Selain file routes/web.php, file yang juga sering digunakan untuk routing adalah routes/api.php. Perbedaan dengan web adalah route ini menggunakan group middleware api. Selain itu semua route yang ditulis pada file api.php ini akan menggunakan prefix api secara otomatis jadi anda bisa mengakses url tersebut dengan menambahkan /api pada url nya.


#BASIC ROUTING

Cara penggunaan dari route yang paling sederhana dapat dilihat pada contoh di bawah ini


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

Saat anda membuka url

http://localhost/nama-program-anda/public/tes 

maka akan terdapat tulisan Hello World. Jika anda meletakkan kode tersebut pada file routes/api.php maka url nya menjadi

http://localhost/nama-program-anda/public/api/tes 

Semua url akan mendapatkan awalan /api seperti yang telah disebutkan sebelumnya. Kode di atas adalah contoh penggunaan route yang paling sederhana,


#ROUTER METHODS

Berikut ini adalah format-format penulisan route


Route::get($uri, $callback);
Route::post($uri, $callback);
Route::put($uri, $callback);
Route::patch($uri, $callback);
Route::delete($uri, $callback);

Saat anda mengakses url secara default route yang digunakan adalah route dengan tipe ::get. Tetapi saat program yang anda buat menggunakan form ataupun melakukan pemanggilan ajax menggunakan method post maka program akan mengakses route dengan tipe ::post. Form pada HTML hanya mengenal penggunaan method get dan post, sedangkan route pada framework Laravel ini menyediakan berbagai macam method seperti put, patch, dan delete.

Pertanyaan yang akan muncul adalah bagaimana cara membuat program mengakses route-route dengan method tersebut. Caranya dapat dilihat melalui potongan kode di bawah ini


<form action="/test" method="POST">
    <input type="hidden" name="_method" value="PUT">
    <input type="hidden" name="_token" value="{{ csrf_token() }}">
</form>

Anda perlu menambahkan sebuah inputan dengan nama _method dengan value PUT, PATCH, atau DELETE sesuai dengan kebutuhan program anda. Seperti yang telah disebutkan sebelumnya, penjelasan mengenai CSFR Token akan diberikan pada artikel-artikel tutorial laravel berikutnya.

Laravel juga sudah menyediakan cara penggunaan route jika anda ingin membuat satu route dapat digunakan untuk beberapa method.


Route::match(['GET', 'POST'], $uri, $callback);

Contoh kode di atas akan membuat program melakukan action yang sama saat mengakses url dengan method post maupun method get. Biasanya cara ini digunakan jika anda ingin membuat suatu halaman yang mempunyai form inputan dan anda ingin memprosesnya dalam satu action saja.


#JENIS-JENIS ROUTE

Berikut ini adalah beberapa macam tipe route yang pada umumnya cukup sering digunakan.

BASIC ROUTE

Route::get('/tes', 'NamaControllerController@namaaction');

Berdasarkan contoh kode di atas, program akan menjalankan action namaaction yang terdapat pada controller NamaController.


REDIRECT ROUTE

Route::redirect('/asal', '/tujuan', 301);

Kode di atas akan melakukan redirect dari url /asal menuju ke url /tujuan.


VIEW ROUTE

Route::view('/tes', 'tes');
Route::view('/tes', 'tes', ['nama' => 'Taylor']);

Jenis route ini akan melakukan pemanggilan view secara langsung tanpa melalui controller dan action. Contoh kode di atas, program akan memanggil view tes pada saat anda mengakses url /tes. Sedangkan contoh program pada baris ke 2 digunakan untuk melakukan passing variabel $nama ke view tes.


#ROUTE GROUPS

Fitur ini digunakan untuk melakukan grouping route. Pengelompokan route yang biasanya sering digunakan adalah berdasarkan middleware dan prefix. 

ROUTE GROUPS MIDDLEWARE

Route::group(['middleware'=> ['middleware_1', 'middleware_2']], function()
{
    Route::get('/tes1','HomeController@actiontes1');
    Route::get('/test2','HomeController@actiontes2');
});

Contoh kode di atas merupakan cara melakukan route group berdasarkan middleware. Url tes1 dan tes2 akan menggunakan middleware yang sama yaitu middleware_1 dan middleware_2.


ROUTE GROUPS PREFIX

Route::group(['prefix'=> 'admin'], function()
{
    Route::get('/tes1','HomeController@actiontes1');
    Route::get('/test2','HomeController@actiontes2');
});

Berdasarkan contoh kode di atas, program akan menambahkan prefix /admin pada url tes1 dan test2. Jadi url yang diakses akan menjadi /admin/tes1 dan /admin/tes2.

Fitur group route seperti ini bisa digunakan misalnya pada saat program memiliki halaman backend / admin. Route untuk halaman admin tersebut dapat anda pisahkan dari route untuk frontend dengan penambahan prefix admin pada urlnya.

Route Group Middleware dan Prefix ini juga dapat digabungkan menjadi 1 jika memang dibutuhkan. Berikut ini adalah contoh kodenya



Route::group(['prefix' => 'admin','middleware'=> ['middleware_1', 'middleware_2']], function()
{
    Route::get('/tes1','HomeController@actiontes1');
    Route::get('/test2','HomeController@actiontes2');
});


Demikianlah artikel Tutorial Laravel 5.5 - Routing ini. Penjelasan mengenai routing pada artikel ini memang tidak terlalu lengkap karena saya hanya menjelaskan bagian-bagian yang pada umumnya sering digunakan. Semoga artikel ini dapat membantu dan selamat mencoba.
Tutorial Laravel 5.5 - Routing (Bagian 2) Tutorial Laravel 5.5 - Routing (Bagian 2) Reviewed by Donny Winarto on July 11, 2018 Rating: 5

No comments:

Powered by Blogger.