FOSUserBundle primordial formulaire d'inscription

Je voudrais remplacer le formulaire d'inscription à partir de FOSUserBundle.

J'ai suivi cette page: https://github.com/FriendsOfSymfony/FOSUserBundle/blob/1.3.x/Resources/doc/overriding_forms.md

Je veux que le formulaire de contenir ces six entrées:

  1. Salutation
  2. prénom
  3. nom de famille
  4. e-mail
  5. mot de passe
  6. mot de passe confirmer le

Ma Structure De Dossier:

entrez description du lien ici

Ma Classe D'Utilisateur:

    <?php

namespace Bundles\FrontendBundle\Entity;

use FOS\UserBundle\Entity\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;

/**
 * @ORM\Entity
 * @ORM\Table(name="fos_user")
 */
class User extends BaseUser
{
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

    /**
     * @ORM\Column(type="string", length=255)
     *
     * @Assert\NotBlank(message="Please enter your name.", groups={"Registration", "Profile"})
     * @Assert\MinLength(limit="3", message="The name is too short.", groups={"Registration", "Profile"})
     * @Assert\MaxLength(limit="255", message="The name is too long.", groups={"Registration", "Profile"})
     */
    //protected $name;

    public function __construct()
    {
        parent::__construct();
        //your own logic
    }

    /**
     * Get id
     *
     * @return integer 
     */
    public function getId()
    {
        return $this->id;
    }

}

Mon service.yml de Données:

parameters:
services:
    frontendbundle.registration.form.type:
        class: Bundles\FrontendBundle\Form\Type\RegistrationFormType
        arguments: [%fos_user.model.user.class%]
        tags:
            - { name: form.type, alias: frontend_user_registration  }
    frontendbundle.form.handler.registration:
        class: Bundles\FrontendBundle\Form\Handler\RegistrationFormHandler
        arguments: ["@fos_user.registration.form", "@request", "@fos_user.user_manager", "@fos_user.mailer", "@fos_user.util.token_generator"]
        scope: request
        public: false

Ma config.yml de Données:

fos_user:
db_driver: orm # other valid values are 'mongodb', 'couchdb' and 'propel'
firewall_name: main
user_class: Bundles\FrontendBundle\Entity\User
registration:
    form:
        type: frontend_user_registration
        handler: frontendbundle.form.handler.registration

Mon RegistrationFormType Classe:

    <?php

namespace Bundles\FrontendBundle\Form\Type;

use Symfony\Component\Form\FormBuilderInterface;
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('firstname')
            ->add('lastname')
            ->add('salutation')
            ->add('email', 'email', array('label' => 'form.email', 'translation_domain' => 'FOSUserBundle'))
            ->add('plainPassword', 'repeated', array(
                    'type' => 'password',
                    'options' => array('translation_domain' => 'FOSUserBundle'),
                    'first_options' => array('label' => 'form.password'),
                    'second_options' => array('label' => 'form.password_confirmation'),
                    'invalid_message' => 'fos_user.password.mismatch',
                )
            )
        ;
    }

    public function setDefaultOptions(OptionsResolverInterface $resolver)
    {
        $resolver->setDefaults(array(
            'data_class' => "Bundles\FrontendBundle\Entity\User"
        ));
    }

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

Comment dois-je définir le champ ici pour mon plan avec les six entrées ?

Espère que quelqu'un pourra m'aider.

  • Est-ce que votre bundle hérite de FOSUserBundle?
  • Hey Geoffrey, oui mon Bundle hérite de FOSUserBundle
InformationsquelleAutor Dave | 2014-02-17