Bonjour à tous,
J'ai un souci d'affichage de mon formulaire dans une popup. Ma vue du formulaire est un fichier : add.html.twig qui lui même est inclut dans un template parent.
Quand je clique pour afficher ma popup, j'ai les erreurs suivantes : "Variable 'form' does not exist." et "Variable 'entity' does not exist". Les 2 vues n'ont pas le même controller.
Je n'arrive pas à accéder à mon formulaire via le fichier d'include. J'ai essayé de faire un : {{ rendre(contrôler('AppBundle:Form:add', {} )}} dans le template mais toujours rien.
J'affiche bien mon formulaire sans include() et mon controller s'exécute bien. Je ne vois pas d'où vient le problème à part qu'il me dit les variables 'form' et 'entity' n'existent. Hors ces 2 variables existent belle et bien mais ils ne sont pas accessibles en include. Merci par avance pour votre aide !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 // layout.html.twig {% block body %} {% include '/form.html.twig' %} <div> <h1>{{ entity.name }}</h1> <p>{{ entity.description }}</p> <a href="#" id="popup">Afficher popup</a> </div> {% endblock %} {% block javascripts %} <script> $(function () { $('#popup').on('click', function(){ // affiche la popup }); }); </script> {% endblock %}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 // add.html.twig {% block body %} <div> <h3>Formulaire</h3> {{ form_start(form) }} {{ form_errors(form) }} {{ form_widget(form.title) }} {{ form_widget(form.body) }} <input type="submit" value="Valider"> {{ form_rest(form) }} {{ form_end(form) }} </div> {% endblock %}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 // FormController.php class FormController extend Controller { public function addAction(Request $request, $id) { $entity = new Entity(); $form = $this->createForm(FormType::class, $entity); if ($request->isMethod('POST') && $form->handleRequest($request)->isValid()) { $em = $this->getDoctrine()->getManager(); $em->persist($entity); $em->flush(); $request->getSession()->getFlashBag()->add('notice', 'Success'); return $this->redirectToRoute('form_view', array('id' => $entity->getId())); } return $this->render('AppBundle:Form:add.html.twig', array( 'form' => $form->createView(), )); } }
Partager