Laravel - Routing: A Beginner's Guide
Hai teman-teman yang sedang belajar Laravel! Hari ini, kita akan mengemban perjalanan menarik melalui dunia routing Laravel. Sebagai guru komputer yang ramah di lingkungan sekitar Anda, saya akan memandu Anda melalui konsep fundamental ini, memastikan Anda memahami setiap langkah. Jadi, ambillah secangkir kopi (atau teh, jika itu hal yang Anda sukai), dan mari kita mulai!
Apa Itu Routing?
Sebelum kita memulai, mari kita pahami apa sebenarnya routing itu. Bayangkan Anda berada di sebuah perpustakaan besar (internet), dan Anda ingin menemukan buku tertentu (halaman web). Petugas perpustakaan (router) membantu Anda menemukan buku yang tepat yang Anda cari. Dalam pengembangan web, routing seperti petugas perpustakaan ini, mengarahkan permintaan web ke bagian yang tepat dalam aplikasi Anda.
Routing Dasar
Mari kita mulai dari dasar. Dalam Laravel, routing diatur di dalam file routes/web.php
. Ini adalah tempat kita memberitahu aplikasi bagaimana untuk merespon berbagai permintaan URL.
Route Sederhana
Ini adalah bentuk paling sederhana dari route:
Route::get('/', function () {
return 'Hello, World!';
});
mari kitauraikan ini:
-
Route::get()
mengatakan ke Laravel untuk merespon permintaan GET. - Parameter pertama
'/'
adalah path URL (dalam hal ini, halaman utama). - Parameter kedua adalah fungsi yang mengembalikan apa yang seharusnya dikirim kembali ke browser.
Ketika Anda mengunjungi halaman utama website Anda, Anda akan melihat "Hello, World!" ditampilkan.
Route ke View
Biasanya, daripada hanya mengembalikan teks, kita ingin mengembalikan seluruh halaman HTML. Laravel membuat ini mudah:
Route::get('/welcome', function () {
return view('welcome');
});
Route ini akan mengembalikan view welcome
ketika seseorang mengunjungi /welcome
. Views adalah template HTML yang disimpan di direktori resources/views
.
Route dengan Controller
Sebagai aplikasi Anda tumbuh, Anda akan ingin menggunakan controller untuk mengatur kode Anda secara lebih baik:
Route::get('/users', 'UserController@index');
Route ini mengatakan ke Laravel untuk memanggil metode index
pada UserController
ketika seseorang mengunjungi /users
.
Parameter Route
Sekarang, mari kita membuat hal ini lebih menarik. Apa bila kita ingin menangani segment dinamis dalam URL kita?
Parameter Dasar
Route::get('/user/{id}', function ($id) {
return 'User '.$id;
});
Route ini akan cocok dengan URL seperti /user/1
, /user/2
, dll. {id}
dalam URL menjadi variabel yang dikirim ke fungsi.
Parameter Opsional
kadang-kadang, parameter mungkin opsional. Kita juga dapat menangani ini:
Route::get('/user/{name?}', function ($name = 'John') {
return 'Hello, '.$name;
});
Route ini akan bekerja untuk keduanya /user
dan /user/Jane
. Jika tidak ada nama yang diberikan, ia default ke 'John'.
Batasan Parameter
Kita juga dapat menambahkan batasan ke parameter kita menggunakan ekspresi regular:
Route::get('/user/{id}', function ($id) {
return 'User '.$id;
})->where('id', '[0-9]+');
Route ini hanya akan cocok jika id
terdiri dari satu atau lebih digit.
Route Bertama
Route bertama memungkinkan Anda mengacu ke route dengan nama instead dari URL mereka. Ini sangat berguna saat Anda perlu menggenerate URL atau redirect dalam aplikasi Anda.
Mendefinisikan Route Bertama
Route::get('/user/profile', function () {
//
})->name('profile');
Menggunakan Route Bertama
Setelah route dinamai, Anda dapat generate URL atau redirect ke route seperti ini:
// Mengenerate URL...
$url = route('profile');
// Mengenerate redirect...
return redirect()->route('profile');
Ini sangat membantu karena jika Anda pernah ingin mengubah URL halaman profil, Anda hanya perlu mengubahnya di satu tempat (definisi route), dan semua referensi ke route dinamai secara otomatis akan menggunakan URL baru.
Grup Route
Sekarang, saat aplikasi Anda tumbuh, Anda mungkin menemukan bahwa Anda menerapkan middleware atau prefix yang sama ke grup route. Laravel memungkinkan Anda untuk mengelompokkan route ini bersamaan:
Route::middleware(['auth'])->group(function () {
Route::get('/dashboard', function () {
// Memerlukan autentikasi...
});
Route::get('/account', function () {
// Memerlukan autentikasi...
});
});
Ini menerapkan middleware auth
ke keduanya route /dashboard
dan /account
.
Metode Route
Laravel mendukung routing untuk semua verb HTTP standar. Berikut adalah tabel rujukan cepat:
HTTP Verb | Route Method |
---|---|
GET | Route::get() |
POST | Route::post() |
PUT | Route::put() |
PATCH | Route::patch() |
DELETE | Route::delete() |
OPTIONS | Route::options() |
Anda bahkan dapat merespon beberapa verb HTTP dengan route tunggal:
Route::match(['get', 'post'], '/', function () {
//
});
Route::any('/', function () {
//
});
Dan itu saja! Anda telah mengambil langkah pertama Anda ke dalam dunia routing Laravel. Ingat, latihan membuat sempurna, jadi jangan takut untuk mencoba route yang berbeda dan lihat apa yang terjadi.
Sebelum saya tutup, ini adalah sedikit lelucon routing untuk Anda: Mengapa pengembang itu bangkrut? Karena dia menggunakan semua cache-nya! ?
Selamat coding, dan semoga rute Anda selalu membawa Anda ke tempat yang Anda inginkan!
Credits: Image by storyset