Fusioner 2 formulaires.

Par Frédouze, il y a 5 ans


Bonjour à tous, j'ai 2 formulaires qui enregistrer chacun sur 2 table différentes et j'aimerai les fusionner afin que l'on puisse remplir les champs et qui puissent enregistrer sur les tables respectives.

Voici mes contrôleur

<?php // src/Controller/FormController.php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\Routing\Annotation\Route; use App\Form\SocieteType; use App\Entity\Societe; class SocieteController extends AbstractController { /** * @Route("/societe") */ public function new(Request $request) { $societe = new Societe(); $societe->setAdresse('adresse'); $societe->setVille('ville'); $societe->setCodepostal('code postal'); $form = $this->createForm(SocieteType::class, $societe); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { $em = $this->getDoctrine()->getManager(); $formValues = $request->request->get('societe_form'); $nom = $formValues['nom'] ?? null; $em->persist($societe); $em->flush(); } return $this->render('default/societe.html.twig', array( 'form' => $form->createView(), )); } } <?php // src/Controller/FormController.php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\Routing\Annotation\Route; use App\Form\LibelleFormType; use App\Entity\Libelle; class LibelleController extends AbstractController { /** * @Route("/libelle") */ public function new(Request $request) { $libelle = new Libelle(); $libelle->setNom('Hello World'); $libelle->setDate('Un très court libelle.'); $form = $this->createForm(LibelleFormType::class, $libelle); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { $em = $this->getDoctrine()->getManager(); $formValues = $request->request->get('libelle_form'); $nom = $formValues['nom'] ?? null; if( $libelle->getNom() == null) { $libelle->setValidation('vide'); } $libelle->setAuteur($nom); $em->persist($libelle); $em->flush(); } return $this->render('default/new.html.twig', array( 'form' => $form->createView(), )); } }

Voici mes twigs

<html> <head></head> <body> {{ form_start(form, {'attr': {'novalidate': 'novalidate'}}) }} {{ form_row(form.adresse) }} {{ form_row(form.ville) }} {{ form_row(form.codepostal) }} <button type="submit" class="btn btn-primary">Créer</button> {{ form_end(form) }} </body> </html> <html> <head></head> <body> {{ form_start(form, {'attr': {'novalidate': 'novalidate'}}) }} {{ form_row(form.nom) }} {{ form_row(form.date) }} <button type="submit" class="btn btn-primary">Créer</button> {{ form_end(form) }} </body> </html>

2 réponses

Arbi, il y a 5 ans

Il faut créer un fichier formtype qui fusionne les deux formulaire