Symfony şeklinde bir ekstra alana varsayılan değeri nasıl ayarlanır

1 Cevap php

What i need to do is customize my default userForm by adding a 'passwordagain' field and set the value to the new field equal to the 'password' field. My code:

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

} }

Orada setDefault yöntem işe görünmüyor. Belki de yeni kullanıcılar için çalışır, ama ben burada ne arıyorum değil.

Thanks, Radu.

P.S.: btw ... i propel ile symfony 1.4 kullanın

1 Cevap

Eğer sfWidgetFormInputPassword widget kullanarak çünkü varsayılan çalışmıyor nedeni budur.

En iyi uygulama bir parola alanını önceden doldurmak asla ve bu sfWidgetFormInputPassword Widget sizin için ne olduğunu.

En iyi uygulamaya karşı gitmek istiyorsanız, aşağıdakileri yapın

$this->widgetSchema['passwordagain']->setOption('always_render_empty', false);

Ancak, ben cidden bunu yapmazsanız tavsiye.