Bonjour,
J'ai un template (page) qui affiche une liste de toutes les sortes de véhicule. A chaque sorte affichée, il est possible de la modifier ou de la supprimer. Lorsqu'on clique sur le bouton "Modifier", on est envoyé vers le formulaire de modification de la sorte.
Mon problème, c'est que mon objet "Sort" n'est pas reconnu dans la fonction du controller qui appelle le template de modification.
Voici le code de mon template affichant la liste des sortes :
J'envoie l'id de mon objet "Sort"
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
29 {% extends 'base.html.twig' %} {% block title %} Types de véhicules existants {% endblock %} {% block body %} {% for sort in sorts %} <section class="sorts"> <sort> <div class="content"> {{sort.sort}} </div> <div> <a href="{{ path('road_trip_editSort', { 'id' : sort.id }, {'test' : 'ok'} )}}" class="btn-btn-primary">Modifier</a> </div> <div> <a href="{{ path('road_trip_deleteSort', { 'id' : sort.id } )}}" class="btn-btn-primary">Supprimer</a> </div> </sort> </section> {% endfor %} <div> <a href="{{ path('road_trip_createSort')}}" class="btn-btn-primary">Ajouter une sorte de véhicule</a> </div> {% endblock %}
Le code de la fonction du controller qui appelle le template de modification :
Elle reçoit l'id et devrait comprendre qu'il s'agit d'un objet "Sort", comme lu dans un tutoriel. Cependant, ce n'est pas le cas car "editMode" est à null. Donc, dans le template suivant, c'est l'option "Création" et non "Modification" qui est affichée :
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 /** * @Route("/road_trip/newSort", name="road_trip_createSort") * @Route("/road_trip/{id}/editSort", name="road_trip_editSort") * */ public function sortForm(Sort $sort = null, Request $request, ObjectManager $manager){ if (!$sort) { $sort = new Sort; } $form = $this->createForm(SortType::class, $sort); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { $manager->persist($sort); $manager->flush(); return $this->redirectToRoute('road_trip_sorts'); } return $this->render('road_trip/createSort.html.twig', ['formSort' => $form->createView(), 'editMode' => $sort->getId() !== null]); }
Je n'y comprends rien. Quelqu'un a une idée?
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42 {% extends "base.html.twig" %} {% form_theme formSort 'bootstrap_4_layout.html.twig' %} {% block body %} {% if editMode %} <h1>Modification d'une sorte de véhicule</h1> {% else %} <h1>Création d'une sorte de véhicule</h1> {% endif %} {{ form_start(formSort) }} {{ form_errors(formSort) }} <div> {{ form_label(formSort.sort, 'Sorte', {'label_attr': {'class': 'foo'}}) }} {{ form_errors(formSort.sort) }} {{ form_widget(formSort.sort) }} </div> <button type="submit" class="btn btn-success"> {% if editMode %} Enregistrer les modifications {% else %} Ajouter la sorte {% endif %} </button> {{ form_end(formSort) }} {% endblock body %}
Merci d'avance!
Partager