Controller memisahkan logika dari route — membuat kode lebih terorganisir.
Membuat controller:
php artisan make:controller UserController
Controller dasar:
class UserController extends Controller
{
public function index()
{
$users = User::all();
return response()->json($users);
}
public function show(int $id)
{
$user = User::findOrFail($id);
return response()->json($user);
}
public function store(Request $request)
{
$user = User::create($request->all());
return response()->json($user, 201);
}
}
Menghubungkan route ke controller:
Route::get("/users", [UserController::class, "index"]);
Route::get("/users/{id}", [UserController::class, "show"]);
Route::post("/users", [UserController::class, "store"]);
Resource controller (shortcut untuk CRUD):
Route::apiResource("users", UserController::class);
// Otomatis membuat 5 route:
// GET /users → index
// POST /users → store
// GET /users/{user} → show
// PUT /users/{user} → update
// DELETE /users/{user} → destroy