Wie Standardwert auf ein zusätzliches Feld in einer symfony Form einzustellen
-
19-09-2019 - |
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
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.