Bonjour,

J'ai une question débutante sur laquelle je bloque. En fait, j'ai un formulaire tout simple qui appelle une collection :

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
 
class ModuleType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('controles', 'collection', array(
                'label' => false,
                'type' => new ModuleControleType(),
                'allow_add' => true,
                'allow_delete' => true,
                'by_reference' => false
            ))
        ;
    }
...
Et voici la ModuleControleType() :

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
class ModuleControleType extends AbstractType
{

    use Description;

    /**
     * @param FormBuilderInterface $builder
     * @param array $options
     */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $this->description($builder, 2);
    }

    /**
     * @param OptionsResolverInterface $resolver
     */
    public function setDefaultOptions(OptionsResolverInterface $resolver)
    {
        $resolver->setDefaults(array(
            'data_class' => 'AdministrationBundle\Entity\ModuleControle',
            'intention' => $this->getName() . '_token'
        ));
    }

    /**
     * @return string
     */
    public function getName()
    {
        return 'administration_module_controle_form';
    }
}
Jusque la, pas de soucis, c'est un code vraiment de base sur Symfony et tout fonctionne bien : il va chercher tous mes points. Cependant, je souhaiterais personnaliser la requête (le query_builder donc) qui va chercher mes "points" dans ModuleControle() afin de lui rajouter un WHERE.

J'ai essayé de rajouter "query_builder" à setDefaultOptions(), comme c'est le cas pour les champs de type "entity" mais ça ne fonctionne pas.

Merci d'avance