Bonjour, je débute avec Symfony, j'ai une page avec plusieurs formulaires avec chacun un bouton submit et je souhaite pouvoir les valider indépendamment.
Cependant je n'y parviens pas, en effet lorsque je soumets toutes les lignes de ma tables changent, ou alors la dernière (peu importe sur quel bouton j'appuie).
Voici mon ActuType.php
et voici ma fonction dans mon controleur
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 <?php namespace newsBundle\Form; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; use Symfony\Component\Form\Extension\Core\Type\ChoiceType; use Symfony\Component\Form\Extension\Core\Type\SubmitType; class ActuType extends AbstractType { /** * @param FormBuilderInterface $builder * @param array $options */ public function buildForm(FormBuilderInterface $builder, array $options) { $builder ->add('title') ->add('actu') ->add('catid', ChoiceType::class, array('choices' => array('Syndicat'=>1,'Interne'=>2,'Petite enfance'=>3), 'choices_as_values' => true,)) ->add('save',SubmitType::class,array('label' => 'Sauvegarder')) ; } /** * @param OptionsResolver $resolver */ public function configureOptions(OptionsResolver $resolver) { $resolver->setDefaults(array( 'data_class' => 'newsBundle\Entity\Actu' )); } }
j'ai tenté plusieurs manipulation, mais je ne vois pas comment faire pour que chaque bouton soit lié à l'entité en question.
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(Request $request) { $repository = $this->getDoctrine()->getRepository('newsBundle:Actu'); $products = $repository->findAll(); foreach($products as $product) { $form = $this->createForm(ActuType::class, $product); $tabform[] = $form->createView(); } $form->handleRequest($request); if ($form->isValid() && $form->isSubmitted()) { $em = $this->getDoctrine()->getManager(); echo "test"; $em->persist($product); $em->flush(); }
Merci de m'avoir lu.
Partager