[Sf3] Formulaire d'une association many-to-many avec attribut

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [Sf3] Formulaire d'une association many-to-many avec attribut

[Sf3] Formulaire d'une association many-to-many avec attribut

par zigz4g » 18 mai 2017, 22:16

Salut,

Je suis confronté a un problème de gestion de formulaire sur une entité de type many-to-many.
Mon entité est une association entre deux tables qui comprend un attribut dans la table de l'association.

J'ai actuellement besoin de faire une liaison entre l'entité Personne et l'entité Métier. L'association comprend un champ 'principal' et ce nomme 'personne_metier'.

J'ai essayé de faire un formulaire en partant de l'association 'personne_metier' pour faire une validation sur le métier. Dans mon controlleur :
public function addMetierAction(Request $request)
{
        $em = $this->getDoctrine()->getManager();

        $personne = $this->getUser();
        $pm = new PersonneMetier();
        $pm->setPersonne($personne);

        $form = $this->createForm(PersonneMetierType::class, $pm, array('method' => 'POST'));
        if ($request->isMethod('POST') && $form->handleRequest($request)->isValid())
        {
                $em->persist($pm);
                $em->flush();
                return $this->redirect($this->generateUrl('back'));
        }
        return $this->render(
            'back.html.twig',
            array(
                'form' => $form->createView(),
                'personne' => $personne,
                'personne_metier' => $pm,
                )
        );
    }
Dans mon buildform:
public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder->add('metier', EntityType::class, array(
                    'entry_type'   => MetierType::class,
                    'allow_add'    => true,
                    'allow_delete' => false,
                    'error_bubbling' => false,
                )
       );
}
Dans mon idée, c'est de pouvoir ajouter plusieurs métier à la personne dans un même formulaire. Mais lorsque je valide le formulaire, je n'arrive pas a faire valider le formulaire une quantité inconnue de métier.

Je pense pouvoir le faire pour un métier mais pas plus :(