Bonjour à tous,
débutant sur Symfony, je tente de créer un formulaire. Jusqu'ici tout va bien, mon soucis est que mon entité n'est pas hydraté lorsque je clique sur submit. Voici mon code :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| $search = new Search();
$formBuilder = $this->get('form.factory')->createBuilder(Formtype::class, $search);
$formBuilder->setMethod('POST');
$formBuilder->add('category', ChoiceType::class, array(
'choices' => $array,
'expanded' => true,
));
$formBuilder->add('ville', TextType::class);
$formBuilder->add('date', DateType::class);
$formBuilder->add('Ok !', SubmitType::class);
$form = $formBuilder->getForm();
if ($request->isMethod('POST')) {
$form->handleRequest($request);
echo('post validé.');
if ($form->isValid()) {
$em = $this->getDoctrine()->getManager();
$em->persist($search);
$em->flush();
echo ('flush fait.');
}
}
else{
echo('post non validé.');
} |
Mon problème est que on formulaire n'est pas en méthode post, mais en get. Je ne sais pas pourquoi. Même en forçant avec un setMethod ou en ajoutant au niveau de la vue, tout reste en get. Je le vois grâce à cette ligne :
dump($request->getMethod());die;
J'obtiens :
1 2
| LandingController.php on line 89:
"GET" |
Je suppose que tant que tant que mon formulaire sera en get, la ligne $form->handleRequest($request); ne fonctionnera pas.
Pour information, voici le contenu de ma vue twig :
1 2 3 4 5
| {% block menu %}
{{ form_start(form)}}
{{form_widget(form)}}
{{ form_end(form)}}
{% endblock %} |
Cette vue est incluse dans une vue principale.
Pouvez-vous m'aider ? Je vous remercie d'avance.
Partager