1. Routing
Routing berperan sebagai penghubung antara user dengan keseluruhan framework. Dalam
Laravel, setiap alamat web yang diketik di url browser akan melewati route terlebih
dahulu. Route-lah yang menentukan ke mana proses akan dibawa, apakah ke Controller
atau ke View.
2. Routing default
Secara default, Laravel sudah menyertakan 1 route bawaan. Sebelum masuk ke kode
program, mari kita lihat hasil tampilan dari route ini. Jalankan server PHP dengan perintah
: php artisan serve di cmd
Kemudian buka web browser dan ketik alamat http://127.0.0.1:8000 atau
http://localhost:8000 . Hasil tampilan ini sebenarnya berasal dari sebuah proses route di
dalam Laravel.
Pada saat kita mengetik alamat http://localhost:8000 dan menekan tombol Enter,
maka sebuah kode program route Laravel akan dipanggil untuk memproses alamat
tersebut. Kode program ini berada di dalam file routes/web.php. Silahkan buka file
ini:
Pada baris kode terakhir 16-18 inilah kode program yang dipanggil untuk memproses
alamat http://127.0.0.1:8000 Secara sederhana, penulisan route Laravel mengikuti
format berikut:
Route::<jenis method>(<alamat URL>,<proses yang dijalankan>)
Pertama, kita harus menulis perintah 'Route::'. Di dalam konsep OOP PHP, tanda ::
merupakan perintah untuk mengakses sebuah static method (atau bisa juga static
property) kepunyaan sebuah class, yang dalam contoh ini adalah milik class Route.
Selanjutnya diikuti dengan penulisan <jenis method>. Jenis method adalah 'cara
sebuah URL diakses'. 'get' merupakan salah satu jenis method yang akan dijalankan
ketika alamat URL diakses secara normal.
Setelah itu dalam tanda kurung terdapat <alamat URL>. Ini merupakan alamat URL
yang akan di proses oleh route. Dalam contoh route bawaan Laravel, alamat URL ini
berisi 1 karakter saja, yakni: '/'. Tanda forward slash dipakai untuk merujuk ke alamat
home atau root, yakni alamat ketika web dipanggil tanpa menulis tambahan apapun
seperti http://localhost:8000.
Terakhir terdapat inputan untuk <proses yang dijalankan>. Pada bagian inilah kita
menulis kode program yang akan dijalankan oleh route, yakni apakah memanggil
view, memanggil controller, atau hal lain. Dalam contoh bawaan Laravel, proses ini
berbentuk anonymous function, atau kadang disebut sebagai closure atau callback
function
3. Membuat Routing
Untuk membuat route, cukup tulis pemanggilan static method Route baru ke dalam file
routes/web.php. Sebagai contoh, tulis kode program berikut di bawah route bawaan
Laravel:
Alamat URL di dalam route juga bisa terdiri dari beberapa segmen, seperti contoh berikut:
route akan "menampung" semua alamat yang diketik di web browser, lalu menampilkan
hasilnya. Dengan route, alamat sebuah URL tidak harus bersesuaian dengan file fisik yang
ada di server. Jadi dalam Laravel harus ada route yang bertugas untuk "menangkap" setiap
alamat. Apabila route tidak ditemukan, Laravel akan menampilkan halaman 404:
4. Route Parameter
Dalam situasi tertentu, kadang kita ingin mengambil nilai yang ada di dalam alamat URL.
Menggunakan PHP dasar, ini bisa dilakukan dengan query string. Sebagai contoh, jika
alamat URL ditulis sebagai http://localhost/mahasiswa.php?nama=admin. Maka nilai
admin ini bias diambil dari variabel $_GET['nama'] di halaman mahasiswa.php.
Kita bisa membuat salah satu atau kedua segmen ini menjadi opsional. Maksudnya jika
nama segmen tidak ditulis, pakai nilai default. Inilah yang disebut sebagai optional
parameters.
Route parameter juga bisa dibatasi dengan regular expression. Ini dipakai jika kita ingin
penulisan alamat URL harus memenuhi pola tertentu. Sebagai bahan praktek, perhatikan
route berikut:
Perhatikan tambahan di baris 46, yakni perintah ->where('id', '[0-9]+'). Kode ini
artinya saya ingin agar parameter 'id' hanya bisa diakses jika memenuhi pola regular
expression ‘[0-9]+’ .
Pola ini berarti segmen 'id' hanya bisa diisi dengan angka 0 – 9 sebanyak 1 karakter atau
lebih. Selain itu, route tidak bisa diakses.
7. Route Redirect
Laravel juga menyediakan fitur untuk proses redirect antar route. Caranya, gunakan
method Route::redirect seperti contoh berikut:
Di sini terdapat 2 route. Route di baris 48 – 50 merupakan route normal untuk alamat
localhost:8000/buku-tamu. Di baris 51 terdapat kode untuk membuat redirect.
Sehingga ketika diakses alamat localhost:8000/guest-book, maka halaman langsung
dialihkan ke localhost:8000/buku-tamu.
8. Route Group
Jika kita memiliki beberapa route yang ingin di proses secara kelompok, bisa
menggunakan route group. Dengan menggunakan route group, beberapa route bisa di
proses sebagai satu kesatuan.
Misalnya ada 3 routing seperti berikut :
localhost:8000/login/mahasiswa
localhost:8000/login/dosen
localhost:8000/login/admin
Karena ke tiga routing menggunakan awalan segmen yang sama, yakni login, maka kita
bisa menggunakan method Route::prefix()
Laravel menyediakan route khusus yang akan dijalankan jika tidak ditemukan route untuk
sebuah alamat URL. Secara default, laravel akan menampilkan halaman 404 | Not
Found, namun kita bisa menimpanya menggunakan method Route::fallback().
Ketika project yang kita buat sudah cukup besar, file routes/web.php akan berisi banyak
route. Selain itu nantinya juga terdapat beberapa perintah yang secara tidak langsung
menjalankan route tertentu
Maka Laravel menyediakan perintah php artisan untuk melihat semua route yang
tersedia. Artisan sendiri adalah perintah cmd bawaan Laravel yang bisa dipakai untuk
melakukan banyak hal.