isvalid form component symfony symfony-forms

component - Symfony 2: agregue un elemento de formulario personalizado, no en una entidad



symfony using form (2)

Trabajo con Symfony2 y me gustaría crear un formulario de registro. No quiero usar FOSUserBundle.

Entonces, creo una cuenta de entidad (con campos: nombre de usuario, contraseña, correo electrónico ...) y creo el formulario:

$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();

Ahora, quiero agregar un campo de confirmación para la contraseña. Pero, cuando trato de agregar un campo con el método add (), por ejemplo "password_confirmation" tengo esto:

Ni la propiedad "password_confirmation" ni el método "getPasswordConfirmation ()" ni el método "isPasswordConfirmation ()" existe en la clase "App / FrontBundle / Entity / Account"

¿Cómo puedo agregar un campo personalizado? Y después, ¿cómo validarlo?

Gracias. BR.


En una situación normal, deberá especificar explícitamente que * password_confirmation * no es parte de la entidad, utilizando la opción property_path .

->add(''password_confirmation'', ''password'', array(''property_path'' => false))

Y luego validarlo con un CallBackValidator .

Pero , en este caso específico, en el que desea repetir un campo, el widget repeated puede hacer eso por usted.

->add(''password_confirmation'', ''repeated'', array( // See the docs :) ));


Una actualización para Symfony 2.1:

property_path ha quedado obsoleto y en su lugar debe usar mapped . La sintaxis sigue siendo la misma:

->add(''password_confirmation'', ''password'', array(''mapped'' => false))