0

假设我有一个用户注册表单。由于密码必须以 md5 编码存储,最好的办法是将其转换为 redhand,但它看起来request是只读的。如何在处理过程中更改表单域?

4

1 回答 1

1

您可以为表单使用自定义验证器。像这样创建一个类:

<?php

class encodeValidator extends sfValidatorBase
{
  /**
  * @see sfValidatorBase
  */
  protected function doClean($value)
  {
     return md5($value); //md5 can be replaced with another encoding method
  }
}

接下来,当您创建表单时,添加您创建的自定义验证器,如下所示:

$this->setWidget('field_name', new sfWidgetFormInputText());
$this->validatorSchema['field_name'] = new encodeValidator();
于 2012-12-26T21:28:14.067 回答