Request & Input di Symfony
Penjelasan
Objek Request bisa di-inject langsung ke method controller lewat type-hint — Symfony otomatis menyediakan instance request yang sedang berjalan. Data query string diakses lewat $request->query->get('nama'), dan data form (POST) lewat $request->request->get('nama').
Contoh Konsep
<?php
use Symfony\Component\HttpFoundation\Request;
class PencarianController extends AbstractController
{
#[Route('/cari', name: 'cari')]
public function index(Request $request): Response
{
$kataKunci = $request->query->get('q', '');
$halaman = $request->query->get('page', 1);
return new Response("Mencari: {$kataKunci}, halaman: {$halaman}");
}
}
Praktikum
Buat method cari(Request $request) yang mengambil input kategori lewat $request->query->get('kategori', 'semua') dan mengembalikan Response berisi teks "Kategori dipilih: {$kategori}".
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Symfony memisahkan sumber data request jadi beberapa "bag" terpisah: query (GET), request (POST/PUT form data), dan files (upload) — kesalahan umum pemula adalah memakai ->request->get() untuk data GET, padahal seharusnya ->query->get().