MBO-SD : De site voor software developer in het MBO
Eigen velden in een formulier
Eigen velden in een formulier
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
contact formulier
//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'])
;
}
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. (De gebruiker kan immers de voorkant zelf ook aanpassen)
Mogelijke FieldTypes
Er zijn verschillende FieldTypes
die je kan gebruiken, in een overzicht degene die het meeste
gebruikt worden:
Standaard/ TextTypes
- TextType - Dit is de tandaard en geeft een textveld
- 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