Routing Dasar di Laravel
Definisikan URL aplikasi dengan Route: GET, POST, named route, dan grup route yang rapi.
Route: pintu masuk aplikasi
Setiap URL di aplikasi Laravel didefinisikan di routes/web.php. Route paling sederhana mengembalikan string atau view:
// routes/web.php
use Illuminate\Support\Facades\Route;
Route::get('/', function () {
return view('welcome');
});
Route::get('/tentang', function () {
return 'Halo, ini halaman tentang kami';
});Method HTTP yang tersedia: Route::get(), Route::post(), Route::put(), Route::patch(), Route::delete(), dan Route::options(). Form HTML hanya mendukung GET dan POST, jadi untuk PUT dan DELETE Laravel menyediakan method spoofing lewat Blade.
Named route: jangan hardcode URL
Beri nama pada route supaya URL bisa digenerate otomatis. Kalau URL berubah, kamu cukup ubah di satu tempat:
// routes/web.php
Route::get('/profil', function () {
return view('profil');
})->name('profil');
// Di Blade atau controller:
route('profil'); // menghasilkan http://127.0.0.1:8000/profilDi Blade kamu pakai {{ route('profil') }} untuk membuat link. Ini kebiasaan wajib di project serius.
Grup route: rapi sejak awal
Kalau banyak route punya awalan atau middleware sama, bungkus dengan grup:
// routes/web.php
Route::prefix('admin')->name('admin.')->middleware('auth')->group(function () {
Route::get('/dashboard', fn () => view('admin.dashboard'))->name('dashboard');
Route::get('/users', fn () => view('admin.users'))->name('users');
});
// URL: /admin/dashboard, nama route: admin.dashboardMelihat daftar route
Artisan bisa menampilkan semua route yang terdaftar, sangat membantu saat debugging:
php artisan route:listCatatan teknis: Urutan route itu penting. Laravel mencocokkan route dari atas ke bawah, jadi route yang lebih spesifik harus ditaruh sebelum route dengan parameter dinamis seperti
Route::get('/post/{id}'). Kalau terbalik, route dinamis akan "menelan" request yang seharusnya ke route statis.