Velden
In een formulier wil je soms de mogelijkheid hebben om een eigen veld toe te voegen omdat dit praktisch is. Symfony herkent niet standaard bijvoorbeeld een emailadres omdat dit in de database een string (varchar) of wellicht andere datatype is. Onderstaand zie je hoe je dit kan oplossen in een contactformulier.
php//In de use-space staan de volgende twee regels erbij use Symfony\Component\Form\Extension\Core\Type\EmailType; use Symfony\Component\Form\Extension\Core\Type\SubmitType; //Verder op in de Class OrderType 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('emailaddress', EmailType::class, ['label' => 'Wat is je mailadres?']) ->add('question', null, ['label' => 'Wat is je vraag?']) ->add('submit', SubmitType::class, ['label' => 'Verstuur']) ; }
Een voorbeeld van een formulier met een emailadres.
Die EmailType die je toevoegt zorgt ervoor dat het inputveld van het email adres in de HTML <input type="email"... krijgt in plaats van de standaard type="text". Voor het versturen zal de browser van de gebruiker een waarschuwing geven als het veld geen emailadres is, maar ook in de validatie in de Controller zal dit gecontroleerd worden.
Mogelijke FieldTypes
Er zijn verschillende FieldTypes die je kan gebruiken. Hieronder een overzicht van de meest gebruikte:
Standaard / TextTypes
- TextType — dit is de standaard en geeft een tekstveld
- TextareaType — TextArea (groter invoerveld)
- EmailType
- IntegerType
- MoneyType
- NumberType
- PasswordType
- PercentType
Keuze Types
- ChoiceType — zie voor meer uitleg formulieren en keuzes
- EnumType
- EntityType — zie voor meer uitleg formulieren en relaties
- CountryType
- LanguageType
- LocaleType
- TimezoneType
- CurrencyType
Datum / tijd Types
- DateType
- DateIntervalType
- DateTimeType
- TimeType
- BirthdayType
- WeekType
Andere Types
- CheckboxType
- FileType
- RadioType
Zoals je ziet zijn er heel veel types die je kan gebruiken. Sommige types hebben ook extra argumenten nodig. Welke opties je kan gebruiken kan je het beste lezen op de Symfony FieldTypes documentatie.