我是symfony的新手,并且正在使用sfDoctrineGuard Plugin开发symfony 1.4版本中的现有项目。我正在尝试在后端更新用户帐户,它需要同时设置一个新密码。更新用户时,密码字段不应为必填字段。这是我正在采取的步骤
1)通过“用户帐户”在后端中编辑用户2)保存用户而不进行任何更改,确保密码字段均为空白。3)表单引发以下错误:“需要密码”
这是我的“编辑表单”代码
class sfGuardUserEditForm extends BasesfGuardUserForm
{
$this->widgetSchema['password'] = new sfWidgetFormInputPassword();
$this->validatorSchema['password'] = new sfValidatorPassword();
$this->widgetSchema['password_again'] = new sfWidgetFormInputPassword();
$this->validatorSchema['password_again'] = new sfValidatorString(array('max_length' => 128, 'required' => true, 'empty_value' => null), array('required' =>'Please provide password again' ));
$this->widgetSchema->moveField('password_again', 'after', 'password');
$this->mergePostValidator(new sfValidatorSchemaCompare('password', sfValidatorSchemaCompare::EQUAL, 'password_again', array(), array('invalid' => 'The two passwords must be the same.')));
}
public function save($conn = null)
{
$this->object->setPassword($this->getValue('password'));
$this->object->save();
}
}
如何解决这个问题?
您还可以检查对象是否已经存在1。如果存在,则不验证编辑时的密码字段;如果不存在,则必须验证密码字段。
if ($this->getObject()->Exists())
{
$this->validatorSchema['password'] = new sfValidatorPassword(array('required'=>false));
}
else
{
$this->validatorSchema['password'] = new sfValidatorPassword(array('required'=>true));
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句