Pendahuluan

Sebelum terjun ke model view controller dan routes, koders harus memahami bagaimana alur aplikasi laravel dalam memproses request user dibawah

Alur aplikasi laravel

Dengan gambar diatas, dapat disimpulkan saat request terjadi (misalnya user mengakses url pada aplikasi laravel kita) akan menuju ke Route. Pada Route, akan mencari rute yang terkait dengan URL ke Action dalam Controller yang telah di definisikan. Pada Action dalam controller, akan memanfaatkan Model yang dibutuhkan untuk mengambil data pada database yang akan diteruskan ke view; Pada View akan memproses halaman yang kemudian ditampilkan pada browser koders.

Route

Dalam laravel, Route memiliki peran penting dalam aplikasi untuk mengatur arah seperti perlintasan pada kereta api. File yang berperan penting ini berada dalam folder routes, dalam folder ini memiliki beberapa file. Tetapi, untuk saat ini kita hanya menggunakan file web.php saja.

Penulisan route dalam laravel bisa menggunakan Closure maupun URI dimana Closure merupakan metode yang sangat simpel. Koders bisa mencobanya dengan mengetik kode seperti dibawah:

....

Route::get('/testrouting', function() {
    echo "<h1>Hello World!</h1>";
});

...

Beberapa method yang didukung routing dalam laravel meliputi get, post, put, patch, delete, dan options.
Terkadang, koders mungkin merangkap post dan get agar menuju ke satu routing. Untuk mewujudkan nya, koders bisa menggunakan method match ataupun any.

Untuk contoh penggunaan metode match, koders

Route::match(['post', 'get'], '/multiroute', function() {
   ....
});

Route::any('/multiroute', function() {
   ....
});

Setelah koders menuliskan kode tersebut dalam Routes, koders bisa langsung mencoba mengaksesnya dengan mengetikkan alamat http://localhost:8000/testrouting ke dalam browser. Nantinya, browser koders akan menampilkan kata Hello World! seperti dibawah ini

Tampilan saat mengakses rute /testrouting

Memberikan parameter pada route

Koders juga bisa menyematkan parameter dalam route agar dapat diakses pada hasilnya seperti dibawah ini

Agar Routes mengenal parameternya, koders hanya perlu menambahkan {nama_variabel} pada url dalam routes nya dan menambahkan $nama_variabel dalam function hingga terlihat seperti dibawah ini:

...

Route::get('/kenalan/{nama}', function($nama) {
     echo "<h1>Halo, " . $nama . "!</h1>";
     echo "<p>Senang berkenalan dengan kamu :)</p>";
});

...

View

View berisi rangkaian kode HTML yang akan ditampilkan nanti kepada user saat mengakses halaman, Laravel memiliki templating engine yang bernama blade. Semua file view disimpan dalam direktori resource/view. Jika kamu ingin membuat file view yang bernama hello.php, kamu harus menamakan file tersebut menjadil hello.blade.php. Dengan bantuan template engine laravel membuat susunan koding html koders menjadi rapih. Contoh simple templating engine blade ini seperti dibawah

Tanpa templating engine

<?php echo $variabel; ?>
<?php foreach($karyawan as $data) {
echo "Halo, " . $data . "!"; 
} ?>

Dengan templating engine

{{ $variabel }}
@foreach($karyawan as $data)
Halo, {{ $data }}!
@endforeach

Untuk penggunaan templating engine lebih lanjut, koders bisa melihat halaman dokumentasi laravel disini.

Menampilkan view dalam route

Untuk menampilkan view ketimbang koders menulis code langsung dalam routes (closure), Koders cukup memanggil function view. Koders bisa melihat contoh dibawah ini.

Dalam file routes/web.php

Route::get('/halo', function() {
    return view('halo');
});

Dalam file resource/views/halo.blade.php

<h1>Hello World!</h1>

Menyematkan variabel ke dalam view melalui route

Seperti halnya memberikan parameter pada route, hanya saja sedikit berbeda. Koders bisa menyematkan variabel kedalam view melalui route menggunakan perintah compact.

Dalam routes/web.php

Route::get('/halo/{nama}', function($nama) {
    return view('halo', compact('nama'));
});

Pada resource/views/halo.blade.php

<h1>Hello, {{ $nama }}!</h1>

Bersambung…

Untuk saat ini, koders sudah memahami dasar routes dan view. Pada kesempatan berikut nya saya akan menjelaskan lebih dalam controller dan model.

Hatur nuhun

Author

Backend Developer on PT. FAN Integrasi Teknologi - Laravel and Django Enthusiast

Pin It