假设我有一个用户注册表单。由于密码必须以md5编码存储,因此最好的想法是以红色方式对其进行转换,但看起来request
是只读的。如何在处理过程中更改表单字段?
答案 0 :(得分: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();