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))