Bonjour tout le monde,

Je souhaiterais afficher un formulaire dans lequel je liste des instances de l'entité AuthVoirNot pour pouvoir les modifier ensemble.

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';
    }
 
}
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;
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';
    }
}
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
 
<?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()));
    }
}
Finalement, on affiche le formulaire dans twig avec {{ form_row(form.Autorisations) }}.

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.