Dalam tutorial ini kami akan membahas controller, route dan view di laravel 5.7. Jika Anda belum instal laravel 5.7 kami sarankan untuk mengikuti panduan berikut : Cara Instal Framework Laravel 5.7 di Windows.

Route

Kami bahas mulai dari Route terlebih dahulu, Laravel hadir menggunakan konsep MVC (Model View Controller) namun ada satu lagi yang perlu dipahami di awal yakni Route.

Fungsi Route di Laravel adalah untuk menangani request kita di Url kemudian mengarahkan aplikasi untuk memanggil halaman/resouce tertentu.

Dalam routing kita akan mengenal yaitu GET dan POST, namun juga ada yang lain yaitu (PUT, PATCH, DELETE, dan OPTIONS ) akan kami bahas dalam tutorial selanjutnya.

Dalam tutorial ini kami bahas dua method dulu yakni GET dan POST pada Laravel.

Fungsi method GET digunakan untuk menampilkan resource tertentu yang dapat diakses melalui url pada address bar di browser.

Sedangkan method POST pada Laravel biasanya digunakan untuk mengirim data dari form ke fungsi tertentu yang tidak dapat diakses langsung melalui address bar di browser.

Letak file Route sendiri di laravel 5.7 ada foldernya sendiri yakni bernama Routes.

web.php

Terdapat 4 file di folder Routes laravel 5.7 yakni :

  1. api.php File ini untuk membuat route pada service API (RESTFull API Laravel).
  2. channels.php File ini untuk membuat routing yang bersifat broadcasting event atau notification.
  3. console.php File ini untuk membuat routing di terminal.
  4. web.php File ini untuk membuat routing web biasa yang diakses di browser.

Route di laravel yang biasa diakses di browser adalah web.php, jadi kita fokus di file web.php dulu.

Berikut isi dari file web.php default dari laravel.

isi web.php laravel

Script diatas maksudnya adalah :

Ada 1 buah fungsi di dalam route dengan method GET, dimana tanda slash ('/') merupakan halaman utama atau url domain utama dari aplikasi Anda.

Fungsi tersebut memiliki return View yang artinya memanggil file yang bernama 'welcome.blade.php' yang berada di folder resources>views.

Kenapa terdapat ekstensi blade.php? Blade pada Laravel adalah Sistem Templating bawaan Laravel.

Selanjutnya, silahkan buka folder project Anda melalui cmd.

Project yang kami gunakan namanya blog letaknya di directory C: dan di dalam folder tutorial.

cara akses poject laravel di cmd

Untuk mengaksesnya melalui cmd Anda cukup ketik perintah "cd c://tutorial/blog".

Untuk menjalankan project laravel Anda cukup ketik "php artisan serve" sehingga muncul alamat IP & Port yang digunakan untuk mengaksesnya di browser.

Cara menjalankan laravel

Penjelasan IP dan Port di Laravel:

  • 127.0.0.1 merupakan nama lain dari localhost
  • 8000 merupakan port dari laravel

Intinya Anda bisa akses baik melalui http://127.0.0.1:800 atau http://localhost:8000. Agar project laravel bisa berjalan terus pastikan tidak menutup cmd.

View

Sudah kami singgung diatas, view merupakan sebuah tampilan Template HTML laravel yang dinamakan Blade.

Semua yang ada di view harus ber-ekstensi blade.php, letaknya berada di folder resources>views. 

Coba kita akses di browser dengan alamat http://localhost:8000, maka akan muncul halaman default dari laravel.

menjalankan laravel

Tampilan diatas merupakan keluaran dari view yang filenya bernama welcome.blade.php yang berada di folder resources>views.

welcome.blade.php

Oke, kita buat satu tampilan lagi bernama profile.blade.php sejajar dengan file welcome.blade.php.

profile.blade.php

Kemudian kita buat 1 fungsi route lagi di web.php yang memanggil view profile.

Oh ya untuk pemanggilan file view, caranya cukup panggil langsung nama filenya tanpa memanggil secara lengkap.

Misalnya view profile.blade.php, Anda cukup memanggilnya di controller atau di route dengan return view('profile');

Terus gimana jika ada di dalam folder lain?

Oke misalnya file view profile.blade.php berada di folder pages? gimana cara manggilnya?

untuk memanggilnya cukup mudah, yakni Anda juga menyertakan nama foldernya sebelum nama viewnya dan dikasih tanda petik(.) sebagai pemisah. Sehingga pemanggilannya menggunakan script seperti ini :

return view('pages.profile'); // jika profile.blade.php berada di dalam folder pages
return view('profile'); // jika profile.blade.php berada dalam folder views

web.php

Setelah itu coba akses http://localhost:8000/profile untuk mengakases view profile.

tampilan profile.blade.php

Menambahkan path secara dinamis dan menampilkan data di view.

path dinamis

Penjelasan script diatas :

  • {data} merupakan path dinamis, contoh cara aksesnya klik http://localhost:8000/profile/wahyu
  • $data merupakan variable untuk menyimpan data path yaitu (wahyu)
  • compact merupakan fungsi untuk passing data (wahyu) ke tampilan view profile.

belajar controllerDi view profile.blade.php kita tambahkan sebuah script {{$data}} yang didapat dari fungsi compact('data');

Penjelasan :

  • Script $data merupakan variable yang menampung sebuah nilai (wahyu)
  • Script {{ }} merupakan fungsi echo pada laravel untuk menampilkan data dari variable ke tampilan.

tampilan profile.blade.php

Nah diatas bisa kita lihat, apapun yang kita isikan pada path dinamis akan ditampung didalam variable data dan ditampilkan di view profile.

Controller

Controller di laravel adalah sebuah pengendali dari route dan jembatan antara Model dan View. Dengan controller, aplikasi yang kita buat menjadi lebih mudah di kontrol dan rapi.

medium.com

Untuk membuat controller cukup mudah, buka cmd baru jalankan perintah "php artisan make:controller BelajarController" di dalam project Anda. 

Setelah berhasil akan terdapat file baru bernama BelajarController.php di dalam folder app>Http>controllers.

membuat controller

Kemudian buka file BelajarController.php dan web.php ubah seperti gambar dibawah ini.

belajar controller

Penjelasan :

Route::get('/profile/{data}','[email protected]');

Script diatas merupakan sebuah route yang memanggil fungsi HanyaTest yang berada di controller BelajarController.php. 

Fungsinya sama yaitu memanggil view profile dengan menampilkan variable data dengan nilai sesuai yang dimasukkan.

Selanjutnya kita coba dengan menggunakan method POST. Buat 2 buah route baru dengan method POST dan GET.

Route::get('form','[email protected]'); //memanggil view form
Route::post('profile','[email protected]'); //mengirim data ke controller

Tambahkan fungsi baru di BelajarController.php bernama getPorofile.

public function form(){
  return view('form'); // memanggil view form
}

public function getProfile(Request $request){
  $data = $request->kata; // menampung parameter kata
  return view('profile',compact('data')) //menampilkan data dari parameter kata ke profile
}

Buat satu file view form.blade.php sejajar dengan welcome.blade.php dan profile.blade.php.

<html>
<title>Contoh Form</title>
<form method="POST" action="/profile">
{{csrf_field()}} //token yang wajib di sertakan bila menggunakan method post
<input type="text" placeholder="Masukkan teks" name="kata">
<button type="submit">kirim</button>
</form>
</html>

Isikan script dibawah ini ke file view profile.blade.php.

<p>Anda menginputkan <b>{{$data}}</b></p>

Coba jalankan dengan akses ke http://localhost:8000/form.

form.blade.php

Isikan teks hallo dan klik kirim. Maka akan tampil seperti dibawah ini.

profile.blade.phpSemoga tutorial ini bisa mudah dipahami dan lebih semangat dalam belajar pemrograman.


Wahyu Prasetyo
Wahyu Prasetyo Hanya manusia biasa yang berilmu dan ingin bermanfaat untuk orang lain.