Bonjour,
Voila, le titre en dis un peu sur mon probleme et je cherche quelques bonnes âmes pour m'aiguiller pour trouver une solution ;)

Ce que je fais

Je cherche a faire plusieurs choses en meme temps parce que je n'ai qu'un seul formulaire de validation.

Je recupere un tableau d'un traitement précédent. Ce tableau doit me servir à pre-remplir mon formulaire mais je n'arrive a faire parvenir mes infos dans mon formulaire.

Voici le tableau devant servir au remplissage du formulaire:

array:5 [▼
  "truc" => array:35 [▶]
  "dateDoc" => "11/02/2020"
  "muche" => array:14 [▶]
  "bidule" => array:8 [▼
    9 => array:6 [▼
      "annee" => "1988"
      "debut" => "01/01"
      "fin" => "30/03"
      "naturePeriode" => "Ville de Nantes "
      "points" => "3"
      "surplus" => "167"
    ]
    10 => array:6 [▶]
    11 => array:6 [▶]
    12 => array:6 [▶]
    13 => array:6 [▶]
    14 => array:6 [▶]
    15 => array:1 [▶]
    "numero" => "0123DFG0123"
  ]
  "berk" => array:23 [▶]
]

Voici mon formType:

class RecuperationType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            //pour faire la liaison entre etudie et indiv
            ->add('etudie', EtudieType::class, [
                'data' => $options['etudie'],
            ])

            // creer le indiv
            ->add('indiv', IndivType::class)

            // mettre un addEventListener pour le creer apres le indiv et recup id indiv
            ->add('carr', CarrType::class)

             // mettre un addEventListener pour le creer apres le carr et recup id carr
            ->add('infoCarr', InfoCarrType::class)

             // mettre un addEventListener pour le creer apres le infoCarr et recup id infocarr
            ->add('point', PointType::class)
        ;
    }

    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults([
            'etudie' => EtudieType::class
        ]);
    }
}

Ce que je veux

Avec le tableau, je dois faire plusieurs choses dans le formulaire:
1- recuperer les grand sous-ensembles (comme "truc" ou "muche")
2- recuperer les info des sous-ensembles pour en faire l'affichage (souvent sur plusieurs lignes)
Grosso-modo, il va y avoir plusieurs lignes dans chaque sous-ensemble
Par exemple:
sous-ensemble "Truc" va contenir plusieurs lignes identiques (année / debut / fin / naturePeriode / etc...)

Ce que j'obtiens

Pour le moment je n'obtiens que mon formulaire vide. J'ai bien vu dans la doc Symfony le Data Mapper mais je n'arrive pas a le mettre en place.

Merci par avance de m'avoir lu et de votre aide ;)

2 réponses


Tu devrais y arriver avec un FormEvents::PRE_SET_DATA

GabrielT
Auteur

Merci aka-aka, je vais regarder ca de pres des que possible ;)