Routing di Laravel sangat fleksibel dan powerful. Berikut adalah panduan lengkap tentang routing di Laravel:
1. Mendefinisikan Route
Laravel menggunakan file routes/web.php
untuk mendefinisikan route yang dapat diakses oleh pengguna.
Contoh route dasar:
use Illuminate\Support\Facades\Route;
Route::get('/halo', function () {
return 'Halo, Laravel!';
});
Akses di browser: http://localhost:8000/halo
2. Jenis-Jenis Route
a) Route GET, POST, PUT, DELETE, PATCH
Route::get('/user', function () {
return 'GET: Menampilkan data user';
});
Route::post('/user', function () {
return 'POST: Menambahkan user baru';
});
Route::put('/user/{id}', function ($id) {
return "PUT: Memperbarui user dengan ID $id";
});
Route::delete('/user/{id}', function ($id) {
return "DELETE: Menghapus user dengan ID $id";
});
b) Route dengan Parameter
Route::get('/produk/{id}', function ($id) {
return "Produk dengan ID: $id";
});
Parameter Opsional:
Route::get('/user/{name?}', function ($name = 'Guest') {
return "Halo, $name";
});
3. Menamai Route (Named Route)
Menamai route memudahkan pemanggilan di dalam aplikasi.
Route::get('/dashboard', function () {
return 'Ini Dashboard';
})->name('dashboard');
Menggunakan route dengan nama:
$url = route('dashboard');
return redirect()->route('dashboard');
4. Route Grouping
Route bisa dikelompokkan berdasarkan prefix atau middleware.
a) Prefix (URL yang Sama)
Route::prefix('admin')->group(function () {
Route::get('/dashboard', function () {
return 'Admin Dashboard';
});
Route::get('/user', function () {
return 'Admin User Management';
});
});
Akses di browser:
http://localhost:8000/admin/dashboard
http://localhost:8000/admin/user
b) Middleware (Proteksi Route)
Route::middleware(['auth'])->group(function () {
Route::get('/profile', function () {
return 'Halaman Profil';
});
Route::get('/settings', function () {
return 'Halaman Settings';
});
});
5. Routing ke Controller
Alihkan rute ke Controller agar lebih terstruktur.
a) Single Action Controller
Route::get('/about', [App\Http\Controllers\AboutController::class, 'index']);
b) Resource Controller
Untuk CRUD, gunakan resource
:
Route::resource('posts', App\Http\Controllers\PostController::class);
Maka, otomatis akan memiliki route:
GET /posts
→ index()GET /posts/create
→ create()POST /posts
→ store()GET /posts/{id}
→ show()GET /posts/{id}/edit
→ edit()PUT/PATCH /posts/{id}
→ update()DELETE /posts/{id}
→ destroy()
6. Route API
Untuk API, gunakan file routes/api.php
(otomatis tanpa session & CSRF).
Route::get('/users', function () {
return response()->json([
'users' => ['Ali', 'Budi', 'Citra']
]);
});
Akses melalui: http://localhost:8000/api/users
Itu adalah dasar-dasar routing Laravel.
Tags
Laravel