我在我的应用程序中使用 CakePHP,我有一个用户模型。这个用户有一个密码,它有一个正则表达式来验证。正则表达式强制用户使用至少 6 个字符长的密码,至少包含 1 个数字和特殊字符。
验证如下所示:
'password' => array(
'ruleName' => array(
'rule' => array('custom', '/^.*(?=.{6,})(?=.*\d)(?=.*[a-zA-Z])(?=.*[@#$%^&+=]).*$/i'),
'message' => 'Password not legit',
'allowEmpty' => true
)
)
当我想编辑我的密码时,此验证效果很好。但是当我想编辑用户时(那里没有更改密码的选项), $this->User->save() 失败。
如果我调试我的 $this->User->validationErrors,唯一显示的是:
array(
'password' => '*****'
)
我的帖子数据中没有设置密码字段,因此根本不应该进行验证。当我评论这块验证代码时,可以保存用户。
任何人都知道我做错了什么?