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

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top