我在数据库保存密码时遇到问题。我有密码字段和复杂的regexp验证器(minlenght + special chars + alphanumerics)。发送表单后,验证器检查密码值。之后(如果值有效)我想要哈希密码并最终保存此值,但regexp验证器仍然验证字段并返回错误。
如何在最终保存散列值之前禁用验证器?
抱歉我的英文!
代码:
关于用户模型:
public function setTableDefinition()
{
$this->hasColumn('password', 'string', 32, array ('notnull'=>true, 'minlength'=>8, 'regexp'=> '/^.*(?=.{8,})(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=]).*$/'));
.......
}
public function setUp()
{
$this->addListener(new userChangeListener());
}
听众:
class userChangeListener extends Doctrine_Record_Listener
{
public function postValidate(Doctrine_Event $event)
{
$invoker = $event->getInvoker();
$invoker->password = md5($invoker->password);
}
}