正则表达式验证后的Doctrine密码哈希

时间:2010-11-11 19:23:39

标签: php doctrine validation

我在数据库保存密码时遇到问题。我有密码字段和复杂的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);
    }   
}

0 个答案:

没有答案