champ qui ne s'affiche pas

Par houssem, il y a 6 ans


Bonjour,

Voila je rencontre un petit problème avec mon code.

j'ai suivi ce tuto https://www.youtube.com/watch?v=F0Z-D3MSjA0
j'ai essayé de l'appliquer dans mon projet maisle deuxieme champs ne s'affiche pas (champs equipe)
voici mon code

namespace App\Form; use App\Entity\Saison; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; use Symfony\Component\Form\Extension\Core\Type\SubmitType; use Symfony\Component\Form\Extension\Core\Type\ChoiceType; use Symfony\Component\Form\Extension\Core\Type\DateType; use Symfony\Bridge\Doctrine\Form\Type\EntityType; use Symfony\Component\Form\FormEvent; use Symfony\Component\Form\FormEvents; use App\Entity\Competition; use App\Entity\Equipe; class SaisonType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options) { $builder ->add('nom') ->add('dateDebut', DateType::class) ->add('dateFin', DateType::class) ->add('etat') ->add('competition', EntityType::class, ['class' => Competition::class, 'placeholder' => 'Selectionner une competition', 'mapped' => false, 'required' => true, 'choice_label' => 'nom',]) //->add('equipes', EntityType::class, ['class' => Equipe::class, 'choice_label' => 'nom', 'multiple' => true, 'expanded' => false]) ->add('save', SubmitType::class) ; $builder->get('competition')->addEventListener( FormEvents::POST_SUBMIT, function(FormEvent $event){ $form = $event->getForm(); $com = $form->getData(); $pays = $com->getPays(); $form->add('equipes', EntityType::class, ['class' => Equipe::class, 'choice_label' => 'nom', 'multiple' => true, 'expanded' => false, 'query_builder' => function(EquipeRepository $repo) use($pays){ return $repo->getEquipePays($pays); }]); } ); } public function configureOptions(OptionsResolver $resolver) { $resolver->setDefaults([ 'data_class' => Saison::class, ]); }

je veux svoir pourquoi le champs equipe ne s'affiche pas et comment resoudre ce probleme
merci d'avance

5 réponses

nathan1997, il y a 6 ans

Salut houssem, peut tu nous montré ta vue(twig) ?

houssem, il y a 6 ans

salut j'ai pas fait grand chose dans ma vue mais voici le code

{% extends "base.html.twig" %} {% block body %} <div class = 'text-center'> ajouter une saison </div> <div class ="well"> {{ form(form) }} </div> {% endblock %}
nathan1997, il y a 6 ans

le problème vient peut être de ton controlleur ya moyen que tu le montre aussi ?

nathan1997, il y a 6 ans

Est ce que tu as déja des équipe de créer ?

houssem, il y a 6 ans

oui j'ai cree des equipes et voici le controlleur

class SaisonController extends AbstractController { /** * @Route("/saison/add", name = "sp_saison_add") */ public function add(Request $req) { $saison = new Saison(); $form = $this->createForm(SaisonType::class, $saison); $form->handleRequest($req); if($form->isSubmitted() && $form->isValid()) { $em = $this->getDoctrine()->getManager(); $em->persist($saison); $em->flush(); $req->getSession()->getFlashBag()->add('notice', 'Saison bien enregistrée.'); return $this->redirectToRoute('sp_saison_view', ['id' => $saison->getId()]); } return $this->render('Saison\addSaison.html.twig', ['form' => $form->createView()]); }