[Symfony 4] Formulaire complexe

Par Devdeb22, il y a 6 ans


Bonjour les amis

Voila j'ai 3 entités

Une entité Dialecte

Une entité Exercice

Une entité ExerciceDialecte

il y'a une relation ManyToOne entre ExerciceDialecte et Dialecte par propiété $dialecte dans (ExerciceDialecte)

cette propriété est invérsé par la propriété $exerciceDialectes dans (Dialecte)

il y'a une relation ManyToOne entre ExerciceDialecte et Exercice par propiété $dialecte dans (ExerciceDialecte)

cette propriété est invérsé par la propriété $exerciceDialectes dans (Exercice)

Donc maintenant je souhaite que lorsque je crée un Exercice je puisse créer le l'entrée ExerciceDialecte qui correponds

Et donc dans ExerciceType, j'ai ajouté le champ $exerciceDialectes

Problème c'est que dans ma vue, quand je demande l'affichage du formulaire, je ne vois pas les champs qui sont lié au ExerciceDialecteType

Comment puis-je faire pour enregistrer les deux à formulaire à la fois ?

Voici mon code :

{{ form_row(exercice_form.exerciceDialectes, {'label': "Exercice Dialecte", 'attr': {'class': 'form-controle'}}) }} class ExerciceDialecteType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options) { $builder ->add('exercice', EntityType::class, [ 'class' => Exercice::class, 'choice_label' => 'id' ]) ->add('dialecte', EntityType::class, [ 'class' => Dialecte::class, 'choice_label' => 'id' ]) ->add('exerciceBase', EntityType::class, [ 'class' => ExerciceBase::class, 'choice_label' => 'id' ]) ; } public function configureOptions(OptionsResolver $resolver) { $resolver->setDefaults([ 'data_class' => ExerciceDialecte::class, ]); } } class ExerciceType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options) { $builder ->add('category', EntityType::class, [ 'class' => CategoryExercice::class, 'choice_label' => 'nom', 'label' => false ] ) ->add('exerciceDialectes', CollectionType::class, array( 'entry_type' => ExerciceDialecteType::class, 'label' => false, 'allow_add' => true, 'by_reference' => false, 'allow_delete' => true, )) ->add('niveau', EntityType::class, [ 'class' => Niveau::class, 'choice_label' => 'nomNiveau', 'label' => false ] ) ; } public function configureOptions(OptionsResolver $resolver) { $resolver->setDefaults([ 'data_class' => Exercice::class, ]); } }

Aucune réponse