Frage

Was ich tun muß, ist mein Standard-Benutzerformular anpassen, indem ein ‚passwordagain‘ Feld und den Wert auf das neue Feld gleich das ‚Kennwort‘ Feld gesetzt. Mein 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'));

} }

Die setDefault Methode scheint es nicht zu funktionieren. Vielleicht funktioniert es nur für neue Benutzer, aber das ist nicht das, was ich denn hier suchen.

Danke, Radu.

P. S .: btw ... Ich benutze symfony 1.4 mit Propel

War es hilfreich?

Lösung

Der Grund, Ihr Standard nicht funktioniert, da dadurch das sfWidgetFormInputPassword Widget verwenden.

Aus der Praxis ist es, nie ein Passwort Feld Vorfülle, und das ist, was die sfWidgetFormInputPassword Widget für Sie.

Wenn Sie gegen beste Praxis gehen wollen, gehen Sie wie folgt,

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

Allerdings habe ich ernsthaft empfehlen Sie tun das nicht.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top