laravelroutingfundamentalPemula3 mnt baca

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:

php
// 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:

php
// 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/profil

Di 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:

php
// 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.dashboard

Melihat daftar route

Artisan bisa menampilkan semua route yang terdaftar, sangat membantu saat debugging:

bash
php artisan route:list

Catatan 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.