0
これは簡単だと思います。Silex/Symfonyフォーム - form_errors(フォーム)は小枝では機能しません
私はSymfonyフォーム(Validator付き)を使ってSilexアプリケーションを持っています。
これは私のフォームの一部です:
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メソッドは何も表示されません。今までに何もなかった....
何が問題なの?
ありがとうございます!
私はフォームがデフォルト
によってチャイルズエラーが含まれていないことを考えるM.