Я думаю, что это просто.Форма Silex/Symfony - form_errors (форма) не работает в twig
У меня есть приложение Silex, с Symfony Form (с Validator).
Это часть моей формы:
return $this->factory->createBuilder(FormType::class)
->add('holidayId', HiddenType::class, array())
->add('firstName', TextType::class, array(
'label' => 'Il tuo nome'
))
->add('lastName', TextType::class, array(
'label' => 'Il tuo cognome'
))
->add('email', EmailType::class, array(
'label' => 'La tua email',
'constraints' => array(
new Assert\NotBlank(),
new Assert\Email()
),
'invalid_message' => 'Indirizzo email non valido',
))
->add('phone', TextType::class, array(
'label' => 'Cellulare',
'constraints' => array(
new Assert\NotBlank(),
new Assert\Regex("/[\d\-\ ]+/"),
new Assert\Length(array('min' => 5, 'max'=>20))
)
))
->add('city', ChoiceType::class, array(
'placeholder' => 'Seleziona una città',
'choices' => $cities,
))
->add('age', NumberType::class, array(
'label' => 'Età',
'constraints' => array(
new Assert\NotBlank(),
new Assert\Range(array('min'=>18, 'max'=>100))
)
))
->add('gender', ChoiceType::class, array(
'label' => 'Sesso',
'choices' => array(
'Uomo' => 0,
'Donna' => 1
),
'expanded' => true,
'constraints' => array(
new Assert\NotBlank(),
new Assert\Choice(array(0, 1))
)
))
->add('privacy', ChoiceType::class, array(
'choices' => array(
'Dichiaro di aver preso visione della privacy policy e autorizzo il trattamento dei dati personali per le finalità di cui ai punti a) b) c) della stessa.' => 1,
),
'expanded' => true,
'multiple' => true
))
->add('marketing', ChoiceType::class, array(
'choices' => array(
'Presto il consenso per l’utilizzo e la comunicazione dei miei dati a terzi da parte di P&R Eventi e Vacanze s.r.l. per finalità promozionali relative ai servizi turistici e per la ricezione di offerte commerciali.' => 1,
),
'expanded' => true,
'multiple' => true,
'required' => false
))
->add('send', SubmitType::class, array(
'label' => 'INVIA RICHIESTA',
'attr' => array('class' => 'btn btn-corporate btn-lg btn-block'),
))
->getForm();
который возвращает экземпляр формы.
На мой контроллер у меня есть:
$form = $requestType->getForm();
$form->handleRequest($request);
if($form->isValid()){
$data = $form->getData();
// .....
return $app->redirect('/thank-you');
}
Проверка отлично работает, он перенаправляет меня, когда форма действительна.
На моем взгляде веточки оказывает форму:
{{ form_start(form) }}
{{ form_errors(form) }}
<div class="form-group">
{{ form_label(form.firstName) }}
{{ form_widget(form.firstName, {'attr': {'class': 'form-control'}}) }}
</div>
<div class="form-group">
{{ form_label(form.lastName) }}
{{ form_widget(form.lastName, {'attr': {'class': 'form-control'}}) }}
</div>
<div class="form-group">
{{ form_label(form.email) }}
{{ form_widget(form.email, {'attr': {'class': 'form-control'}}) }}
</div>
...
Метод form_errors не показывает ничего, если форма не является действительной. Когда-либо БЛАНК ....
Что случилось?
Спасибо заранее!
М.