Bonjour à tous, j'utilise Symfony depuis peu et je suis bloqué sur un point.
J'ai un champ projet que j'aimerais cacher ou désactivé si il y a un id projet présent dans mon url. Ca, rien de très compliqué. Sauf qu'au submit la valeur par défaut que va prendre l'id projet sera toujours de 1 si le champ est caché et j'aimerais que la valeur soit égale à l'id de mon url. Si vous avez une solution je suis preneur. Merci d'avance !
ps : Projet à une relation OneToMany avec Sprint et ne peut pas être null
Mon formulaire :
Mon controller :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 public function buildForm(FormBuilderInterface $builder, array $options) { $builder ->add('name') ->add('tag') ->add('project', EntityType::class, [ 'class' => Project::class, 'choice_label' => 'name', ]); }
Ma vue :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 $sprint = new Sprint(); $form = $this->createForm(SprintType::class, $sprint); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { $entityManager = $this->getDoctrine()->getManager(); $entityManager->persist($sprint); $entityManager->flush(); return $this->redirectToRoute('sprint_show', ['id' => $sprint->getId()]); } return $this->render('sprint/new.html.twig', [ 'sprint' => $sprint, 'form' => $form->createView() ]);
Code twig : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 {{ form_start(form) }} {{ form_errors(form) }} {{ form_row(form.name) }} {{ form_row(form.tag) }} {% if not app.request.query.get('id') %} {{ form_row(form.project) }} {% else %} {{ form_row(form.project, { "disabled":"disabled" }) }} {% endif %} <button class="btn btn-primary">{{ button_label|default('Save') }} </button> {{ form_end(form) }}
Partager