I work with Symfony2 and I would like to create a registration form. I don't want to use FOSUserBundle.
So, I create an Entity Account (with fields : username, password, email...) and I create the form :
$account = new Account(); $form = $this->createFormBuilder($account) ->add('username', 'text', array('label' => 'Nom de compte :')) ->add('password', 'password', array('label' => 'Mot de passe :')) ->add('email', 'email', array('label' => 'Adresse email :')) ->getForm();
Now, I want to add a confirmation field for the password. But, when I try to add a field with add() method, for example "password_confirmation" I have this :
Neither property "password_confirmation" nor method "getPasswordConfirmation()" nor method "isPasswordConfirmation()" exists in class "App\FrontBundle\Entity\Account"
How can I add a custom field ? And after, how to valid it ?
Thank you. BR.
An update for Symfony 2.1:
property_path
has been deprecated and instead you should use mapped. The syntax remains the same:
->add('password_confirmation', 'password', array('mapped' => false))
In a normal situation, you'd need to explicitly specify that *password_confirmation* isn't part of the entity, using the property_path option.
->add('password_confirmation', 'password', array('property_path' => false))
And then to validate it with a CallBackValidator.
But, in this specific case, where you want to repeat a field, the repeated widget can do that for you.
->add('password_confirmation', 'repeated', array( // See the docs :) ));
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With