Bonjour à tous,
Je rencontre un souci au niveau de l'update d'une entité.
Je m'explique: une fois sur le formulaire d'édition (qui s'affiche bien), si je valide mon entité sans la modifier, tout se passe nickel.
Par contre, si je modifie le titre par exemple, et que je valide la modification, je tombe sur une belle erreur: Enable to find tutorial entity.
Le stack m'indique un souci à la ligne 10:
Si je vais voir en base de données, mon entité est cependant bien modifié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 public function editAction($slug) { $em = $this->getDoctrine()->getManager(); $entity = $em->getRepository('SiteFrontBundle:Tutorial')->find($slug); if (!$entity) { throw $this->createNotFoundException('Unable to find Tutorial entity.'); } $editForm = $this->createEditForm($entity); $deleteForm = $this->createDeleteForm($slug); return $this->render('SiteFrontBundle:Admin/Tutorial:edit.html.twig', array( 'entity' => $entity, 'edit_form' => $editForm->createView(), 'delete_form' => $deleteForm->createView(), )); }
Pour info, voici les autres actions qui gèrent l'update:
Je ne comprends pas l'erreur, pour la simple raison que j'ai utilisé cette même logique pour d'autres entités, et que je n'ai pas le moindre soucis... En plus ces actions ont été générées par le CRUD, donc en principe ça doit être correct.
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62 /** * Creates a form to edit a Tutorial entity. * * @param Tutorial $entity The entity * * @return \Symfony\Component\Form\Form The form */ private function createEditForm(Tutorial $entity) { $form = $this->createForm(new TutorialType(), $entity, array( 'action' => $this->generateUrl('admin_tutorial_update', array( 'slug' => $entity->getSlug() )), 'method' => 'PUT', )); $form->add('submit', 'submit', array( 'label' => 'Mettre à jour', 'attr' => array('class' => 'btn btn-success') )); return $form; } /** * Edits an existing Tutorial entity. * */ public function updateAction(Request $request, $slug) { $em = $this->getDoctrine()->getManager(); $entity = $em->getRepository('SiteFrontBundle:Tutorial')->find($slug); if (!$entity) { throw $this->createNotFoundException('Unable to find Tutorial entity.'); } $deleteForm = $this->createDeleteForm($slug); $editForm = $this->createEditForm($entity); $editForm->handleRequest($request); if ($editForm->isValid()) { $em->flush(); return $this->redirect($this->generateUrl('admin_tutorial_edit', array( 'slug' => $slug ))); } return $this->render('SiteFrontBundle:Admin/Tutorial:edit.html.twig', array( 'entity' => $entity, 'edit_form' => $editForm->createView(), 'delete_form' => $deleteForm->createView(), )); }
Une aide serait la bienvenue les amis, ça fait 2 jours que j'ai envie de balancer mon PC par la fenêtre
Partager