Cómo establecer el valor predeterminado para un campo adicional en una forma de Symfony
-
19-09-2019 - |
Pregunta
Lo que tengo que hacer es personalizar mi formUsuario predeterminado mediante la adición de un campo 'passwordagain' y establezca el valor en el nuevo campo igual al campo 'contraseña'. Mi código:
class UserForm extends BaseUserForm
{
public function configure()
{
$this->widgetSchema['password'] = new sfWidgetFormInputPassword();
$this->widgetSchema['passwordagain'] = new sfWidgetFormInputPassword();
$this->validatorSchema['password'] = new sfValidatorString();
$this->validatorSchema['passwordagain'] = new sfValidatorString();
$this->getValidatorSchema()->setPostValidator(
new sfValidatorSchemaCompare(
'password',
sfValidatorSchemaCompare::EQUAL,
'passwordagain',
array(),
array('invalid' => 'Passwords don\'t match')
));
$this->setDefault('passwordagain', $this->getObject()->getPassword());
$this->useFields(array('username', 'password', 'passwordagain'));
} }
El método setDefault no parece trabajar. Tal vez sólo funciona para los nuevos usuarios, pero eso no es lo que estoy buscando aquí.
Gracias, Radu.
P.S .: por cierto ... yo uso Symfony 1.4 con propulsión
Solución
La razón de su defecto no está funcionando es porque usted está utilizando el widget sfWidgetFormInputPassword
.
La mejor práctica es que nunca antes de llenar un campo de contraseña, y esto es lo que hace el widget sfWidgetFormInputPassword
para usted.
Si quieres ir en contra de las mejores prácticas, hacer lo siguiente,
$this->widgetSchema['passwordagain']->setOption('always_render_empty', false);
Sin embargo, recomiendo seriamente que no lo hace.