A. Belajar Routing Dalam Laravel 12


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. 

Posting Komentar

Lebih baru Lebih lama