Symfony - Créer un bouton Add and new

, par  admin

Bonjour à toutes et à tous,

Nous allons voir dans cet article comment ajouter un bouton "Save and Add" en plus du bouton Add dans un formulaire symfony. Tout se passe dans le controller :

       $entity = new tuto();
       $form = $this->createCreateForm($entity);
       $form->handleRequest($request);
       
       if ($form->get('save_and_add')->isClicked() && $form->isValid()) {
               $em = $this->getDoctrine()->getManager();
           $em->persist($entity);
           $em->flush();

           return $this->redirect($this->generateUrl('tuto_new'));
       }
       
       if ($form->isValid()) {
           $em = $this->getDoctrine()->getManager();
           $em->persist($entity);
           $em->flush();

           return $this->redirect($this->generateUrl('tuto_show', array('id' => $entity->getId())));
       }

Explications :
Lorsque le bouton "save and add" est cliqué et lorsque le formulaire est valide, on redirige vers la page de création (tuto_new) après avoir persisté les données. Si le bouton submit classique est cliqué, alors c’est la page tuto_show qui sera affiché.

Bien entendu, il faudra créer un bouton save_and_add de type submit dans notre formulaire :

     
       $form->add('submit', 'submit', array('label' => 'Ajouter'));
       $form->add('save_and_add', 'submit', array('label' => 'Ajouter et Nouveau'));

Et l’ajouter dans notre template twig :

    {{ form_row(form.submit)}}
    {{ form_row(form.save_and_add)}}

Terminé :)

Un peu de théorie... Tous les cours théoriques