Como definir o valor padrão para um campo extra em um formulário do symfony
-
19-09-2019 - |
Pergunta
O que eu preciso fazer é personalizar o meu formulário de usuário padrão, adicionando um campo 'passwordagain' e defina o valor para o novo campo igual ao campo 'password'. Meu 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'));
} }
O método setDefault lá não parece trabalho. Talvez ele só funciona para novos usuários, mas isso não é o que eu estou procurando aqui.
Obrigado, Radu.
P.S .: btw ... eu uso symfony 1.4 com propulsão
Solução
A razão o seu padrão não está funcionando é porque você está usando o widget sfWidgetFormInputPassword
.
A melhor prática é nunca pré-preencher um campo de senha, e é isso que o sfWidgetFormInputPassword
Widget faz por você.
Se você quer ir contra a melhor prática, fazer o seguinte,
$this->widgetSchema['passwordagain']->setOption('always_render_empty', false);
No entanto, eu recomendo seriamente que você não fazer isso.