Bonjour tout le monde,
Je souhaiterais afficher un formulaire dans lequel je liste des instances de l'entité AuthVoirNot pour pouvoir les modifier ensemble.
J'ai créé AutorisationsVoirNotType dans lequel j'injecte un collection de AuthVoirNot :
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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 <?php namespace AppBundle\Form; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; class AuthVoirNotType extends AbstractType { /** * {@inheritdoc} */ public function buildForm(FormBuilderInterface $builder, array $options) { $builder->add('nom')->add('auth'); } /** * {@inheritdoc} */ public function configureOptions(OptionsResolver $resolver) { $resolver->setDefaults(array( 'data_class' => 'AppBundle\Entity\AuthVoirNot' )); } /** * {@inheritdoc} */ public function getBlockPrefix() { return 'appbundle_authvoirnot'; } }
Depuis le controlleur je récupère une collection de AuthVoirNot avec l'entité manager et je l'injecte dans le formulaire AutorisationsVoirNotType :
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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 <?php namespace AppBundle\Form; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; use Symfony\Component\Form\Extension\Core\Type\CollectionType; use AppBundle\Form\AuthVoirNotType; class AutorisationsVoirNotType extends AbstractType { /** * {@inheritdoc} */ public function buildForm(FormBuilderInterface $builder, array $options) { $builder->add('Autorisations', CollectionType::class, array('entry_type' => AuthVoirNotType::class )); } /** * {@inheritdoc} */ public function configureOptions(OptionsResolver $resolver) { } /** * {@inheritdoc} */ public function getBlockPrefix() { return 'appbundle_authorisationsvoirnot'; } }
Finalement, on affiche le formulaire dans twig avec {{ form_row(form.Autorisations) }}.
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
17
18
19
20
21
22
23
24
25
26 <?php namespace ResultatBundle\Controller; use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Doctrine\DBAL\Driver\Connection; use AppBundle\Entity\AuthVoirNot; use AppBundle\Form\AuthVoirNotType; use AppBundle\Form\AutorisationsVoirNotType; use \DateTime; class AdminController extends Controller { public function editAutAffAction($session, $annee) { $em = $this->getDoctrine()->getManager(); $list_aut = $em->getRepository('AppBundle:AuthVoirNot') ->findAll(); $form = $this->get('form.factory')->create(AutorisationsVoirNotType::class, $list_aut); return $this->render('ResultatBundle:Admin:autAffNot.html.twig', array('form' => $form->createView())); } }
Alors mon problème est que j'obtient une page contenant uniquement Autorisations. Ma collection de AuthVoirNot ne s'affiche pas.
Merci d'avance et bonne journée.
Partager