MBO-SD : De site voor software developer in het MBO
Labels in formulieren
Niet de standaard database veldnaam, maar eigen label
Standaard als je een formulier hebt gemaakt krijg je (ongeveer) de volgende code in de FieldType class
in de map src/From
.
public function buildForm(FormBuilderInterface $builder, array $options): void
{
$builder
->add('firstname')
->add('lastname')
->add('address')
->add('submit', SubmitType::class, ['label' => 'Verzenden'])
;
}
firstname
, lastname
en address
. Dit is natuurlijk niet de bedoeling, als eerste ziet het er niet mooi uit en
als onze applicatie in een andere taal dan Engels is past het ook niet bij de rest van de applicatie.
Een eigen naam/ label maken
De ->add()
methode kan drie argumenten meegestuurd krijgen. De eerste is de naam van het
veld uit de database, de tweede het Type
(Zoals SubmitType) en de derde is een array
van opties. Een van die opties die je mee kan geven is de optie voor label
. ALs je de
key label
maakt en de waarde vervolgens de naam van het veld die je wilt tonen, zal je die in
jouw formulier terugzien.
public function buildForm(FormBuilderInterface $builder, array $options): void
{
$builder
->add('firstname', null, ['label' => 'Wat is je voornaam?'])
->add('lastname', null, ['label' => 'Wat is je achternaam?'])
->add('address', null, ['label' => 'Wat is je address?'])
->add('submit', SubmitType::class, ['label' => 'Bestel deze pizza'])
;
}
In dit voorbeeld laten we de FieldType
leeg (dit mag), Symfony zoekt dan vanuit de
datatype van het veld in de database een passende FieldType
.
De derde optie zie je een array tussen de rechte haken [ ]
met 1 item in de array
namelijk 'label' => 'Naam van de label'
.
Als je op deze manier werkt zal jouw formulier nette labels krijgen.