Symfony2 FOSUserBundle remplacer le formulaire de profil : champ de formulaire vide?

Je surdéfini formulaire d'inscription à partir de FOSUserBundle avec additionels champs: il fonctionne bien.

Quand j'applique la même logique à remplacer le Formulaire de Profil : le formulaire s'affiche bien avec mon additionels domaines, mais tout est vide (les champs ne contiennent pas de valeurs de l'utilisateur connecté).

Remarque: lorsque j'utilise le formulaire par défaut à partir de la liasse le formulaire de profil contient les valeurs de l'utilisateur connecté.

Est-il une action spécifique par rapport à remplacer le formulaire d'inscription afin de récupérer les valeurs de l'utilisateur connecté ?

VOICI LE CODE :

src/Vn/UserBundle/Resources/config/services.yml

services:
 ...
  vn_user.profile.form.type:
    class: Vn\UserBundle\Form\Type\ProfileFormType
    arguments: [%fos_user.model.user.class%]
    tags:
        - { name: form.type, alias: vn_user_profile }

  vn_user.form.handler.profile:
    class: Vn\UserBundle\Form\Handler\ProfileFormHandler
    arguments: ["@fos_user.profile.form", "@request", "@fos_user.user_manager"]
    scope: request
    public: false 

symfony/app/config/config.yml

  fos_user:
  ...
  profile:
        form:
              type: vn_user_profile
              handler: vn_user.form.handler.profile

src/Vn/UserBundle/Form/Type/ProfileFormType.php

  namespace Vn\UserBundle\Form\Type;

  use Symfony\Component\Form\FormBuilder;
  use FOS\UserBundle\Form\Type\ProfileFormType as BaseType;

  class ProfileFormType extends BaseType
  {    
      public function buildUserForm(FormBuilder $builder, array $options)
      {        
      parent::buildUserForm($builder, $options);

          //custom field       
          $builder->add('profile',new MyProfileFormType(),array(
                    'label' => 'PROFILE'
                    ));

      }

      public function getName()
      {
          return 'vn_user_profile';
      }
  }

src/Vn/UserBundle/Form/Type/MyProfileFormType.php

namespace Vn\UserBundle\Form\Type;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilder;

class MyProfileFormType extends AbstractType
{

    public function buildForm(FormBuilder $builder, array $options)
    {
    $builder->add('birthday','birthday', array(
        'input' => 'array',
        'widget' => 'choice',

        'label'  => 'Birthday',
        ))
        ->add('firstname','text', array(
        'trim' => true,
        'label'  => 'Firstname',
        ))
        ->add('lastname','text', array(
        'trim' => true,
        'label'  => 'Lastname',
        ))
        ->add('gender','choice', array(
        'choices'   => array('1' => 'Male', '2' => 'Female'),
        'expanded'  => true,
        'required'  => true,
        'label'  => 'Vous êtes',
        ));
    }

    public function getName()
    {
        return 'vn_user_myprofile';
    }


    public function getDefaultOptions(array $options)
    {
        return array(
            'data_class' => 'Vn\UserBundle\Document\Profile',

        );
    }

}
Veuillez poster vos questions en anglais blog.stackoverflow.com/2009/07/non-english-question-policy
Nous montrer un peu de code.
Pouvez-vous poster le code du contrôleur lorsque vous utilisez le formulaire? Tout cela a l'air bien, mais il n'ensembles de données. C'est juste de décrire les formes de la structure. Dans votre contrôleur, vous devez appeler $form->setData($user);

OriginalL'auteur Titus | 2012-06-29