Bonjour,

J'ai un formulaire qui fonctionne comme je le souhaite.
Maintenant je souhaite modifier le rendu mais ça coince....

Avec le code suivant pas de soucis....

Code : Sélectionner tout - Visualiser dans une fenêtre à part
{{ form_widget(form) }}
Voici le formtype que j'appelle depuis le contrôleur...
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 Opengen\GeoBundle\Form;
 
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
 
use Opengen\GeoBundle\Form\PaysHistoriqueInitialeType;
use Opengen\GeoBundle\Form\PaysHistoriqueNomType;
use Opengen\GeoBundle\Form\PaysHistoriqueNomClassementType;
 
class PaysType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder 
 
       ->add('Initiales', 'collection', array('type' => new PaysHistoriqueInitialeType(), 'required' => true))
       ->add('Noms', 'collection', array('type' => new PaysHistoriqueNomType(), 'required' => true))
       ->add('NomClassements', 'collection', array('type' => new PaysHistoriqueNomClassementType(), 'required' => true))
 
        ;
    }
 
    public function setDefaultOptions(OptionsResolverInterface $resolver)
    {
        $resolver->setDefaults(array(
            'data_class' => 'Opengen\GeoBundle\Entity\Pays',
            'cascade_validation' => true,
        ));
    }
 
    public function getName()
    {
        return 'geo_paystype';
    }
}
Puis les sous-formulaires :

paysHistoriqueNom
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
<?php
 
namespace Opengen\GeoBundle\Form;
 
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
 
class PaysHistoriqueNomType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
 
 
            ->add('nom')
 
        ;
    }
 
    public function setDefaultOptions(OptionsResolverInterface $resolver)
    {
        $resolver->setDefaults(array(
            'data_class' => 'Opengen\GeoBundle\Entity\PaysHistoriqueNom'
        ));
    }
 
    public function getName()
    {
        return 'opengen_geobundle_payshistoriquenomtype';
    }
}
Les autres sous-formulaires suivent la même logique que celui ci dessus.

Je pensais naïvement récupérer les widgets grâce à un code du genre

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
     {{ form_errors(form) }}
<div>
{{ form_errors(Initiales) }}
{{ form_widget(Initiales) }}
{{ form_label(Initiales, "Initiale du pays") }}
</div>
Mais je me retrouve avec l'erreur suivante :
Variable "Initiales" does not exist in OpengenGeoBundle:Geo:ajouter_pays.html.twig at line 28
Il ya un truc qui m'échappe non ?

Merci pour voter aide.