Route Parameter di Symfony
Penjelasan
Route bisa menerima parameter dinamis lewat kurung kurawal di path, mis. {id} — nilainya otomatis diteruskan sebagai argumen method controller dengan nama yang SAMA PERSIS. Requirement (pembatasan format, mis. hanya angka) bisa ditambahkan lewat argumen requirements di attribute Route.
Contoh Konsep
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
class ProdukController extends AbstractController
{
#[Route('/produk/{id}', name: 'produk_show', requirements: ['id' => '\d+'])]
public function show(int $id): Response
{
return new Response("Menampilkan produk dengan id: {$id}");
}
}
Praktikum
Buat controller ArtikelController dengan method show(string $slug) yang punya attribute #[Route('/artikel/{slug}', name: 'artikel_show')] dan mengembalikan Response berisi teks "Artikel: {$slug}".
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Nama parameter di path ({id}) dan nama argumen method (int $id) HARUS PERSIS SAMA — Symfony mencocokkannya berdasarkan nama, bukan urutan, jadi typo di salah satu sisi akan bikin Symfony error "Controller requires a parameter".