Lewati ke konten utama

Routes dan Controllers di Laravel

Laravel menggunakan sistem routing yang elegan untuk mendefinisikan endpoint aplikasi Anda. Routes mengarahkan permintaan HTTP ke controller, yang menangani logika aplikasi dan mengembalikan respons.

Routes

Routes didefinisikan dalam file routes/web.php (untuk rute web) atau routes/api.php (untuk rute API).

Contoh Route Sederhana

PHP

// routes/web.php

use App\Http\Controllers\UserController;
use Illuminate\Support\Facades\Route;

Route::get('/users', [UserController::class, 'index']);
  • Rute ini mendefinisikan endpoint /users yang merespons permintaan GET.
  • Permintaan diarahkan ke metode index dari UserController.

Jenis Route

Laravel mendukung berbagai jenis route, termasuk:

  • GET: Mengambil data.
  • POST: Mengirim data untuk diproses.
  • PUT: Memperbarui data yang ada.
  • DELETE: Menghapus data.
  • resource: Mendefinisikan rute untuk operasi CRUD (Create, Read, Update, Delete).

Contoh Route Resource


PHP

// routes/web.php

use App\Http\Controllers\PhotoController;
use Illuminate\Support\Facades\Route;

Route::resource('photos', PhotoController::class);
  • Rute ini mendefinisikan rute untuk semua operasi CRUD pada sumber daya "photos".

Controllers

Controllers adalah kelas PHP yang menangani logika aplikasi untuk route tertentu.

Contoh Controller


PHP

// app/Http/Controllers/UserController.php

namespace App\Http\Controllers;

use App\Models\User;
use Illuminate\Http\Request;

class UserController extends Controller
{
public function index()
{
$users = User::all();
return view('users.index', ['users' => $users]);
}
}

Metode index mengambil semua pengguna dari database dan mengembalikan tampilan users.index.

Membuat Controller

Anda dapat membuat controller baru menggunakan perintah Artisan:

Bash

php artisan make:controller UserController

Resource Controllers

Untuk controller resource, Anda dapat menggunakan perintah:

Bash

php artisan make:controller PhotoController --resource
  • Perintah ini akan membuat controller dengan metode untuk semua operasi CRUD.

Tampilan (Views)

Controllers sering kali mengembalikan tampilan untuk merender HTML.

Contoh Tampilan

Blade

// resources/views/users/index.blade.php

<h1>Daftar Pengguna</h1>

<ul>
@foreach ($users as $user)
<li>{{ $user->name }}</li>
@endforeach
</ul>

Penjelasan Tambahan

  • Middleware: Middleware dapat digunakan untuk menambahkan logika tambahan ke route, seperti otentikasi atau validasi.
  • Route Parameters: Anda dapat mendefinisikan parameter di route untuk menangkap nilai dari URL.
  • Route Groups: Route groups memungkinkan Anda untuk mengelompokkan route dengan middleware atau awalan yang sama.