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.