Bonjour,

Je voudrais surcharger le formulaire d'enregistrement d'utilisateur du bundle FOSUserBundle pour gérer les différents rôles d'un utilisateur à sa création. Je m'aide de ce tuto. Mais j'ai un super message d'erreur sur la route register/ :

" FatalErrorException: Compile Error: Declaration of Nas\UserBundle\Form\Type\RegistrationFormType::buildForm() must be compatible with that of Symfony\Component\Form\FormTypeInterface::buildForm() in C:\wamp\www\DevisNas\src\Nas\UserBundle\Form\Type\RegistrationFormType.php line 9 "

J'ai mon fichier UserBundle\Form\Type\RegistrationFormType.php pour ajouter une liste déroulante au formulaire de base
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
<?php
 
namespace Nas\UserBundle\Form\Type;
 
use Symfony\Component\Form\FormBuilder;
use FOS\UserBundle\Form\Type\RegistrationFormType as BaseType;
 
class RegistrationFormType extends BaseType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        parent::buildForm($builder, $options);
 
        // add your custom field
        $builder->add('roles', 'collection', array(
               'type' => 'choice',
               'options' => array(
               'choices' => array(
                   'ROLE_ADMIN' => 'Admin',
                   'ROLE_EDITOR' => 'Editor'))));
    }
 
    public function getName()
    {
        return 'nas_user_registration';
    }
}
Puis mon fichier : app\config\config.yml

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
fos_user:
    db_driver: orm # other valid values are 'mongodb', 'couchdb' and 'propel'
    firewall_name: main
    user_class: Nas\UserBundle\Entity\User
    registration:
        form:
            type: nas_user_registration
Mon fichier : UserBundle\Resources\config\services.yml

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
parameters:
#    nas_user.example.class: Nas\UserBundle\Example
 
services:
    nas_user.registration.form.type:
        class: Nas\UserBundle\Form\Type\RegistrationFormType
        arguments: [%fos_user.model.user.class%]
        tags:
            - { name: form.type, alias: nas_user_registration }
Une idée les synfonystes ?

Mercii