我有一个非常奇怪的问题,我创建了一个简单的表单来将用户添加到db。
代码运行良好,用户正确保存到db。
但是...
我在使用验证时遇到问题,这是关于密码字段的验证数组的摘录:
public $validate = array(
...
'password' => array(
'rule' => array('minLength', 4),
'required' => true,
'message' => "La password deve essere lunga almeno 4 caratteri"
)
);
minLength规则正常工作,但如果我尝试显示消息:
debug($this->User->validationErrors);
在我的控制器中。我看到了这个输出:
array(
'password' => '*****'
)
为什么“ * ”??
我想收到我在$validate
数组中写的消息。
此问题仅发生在密码字段。
答案 0 :(得分:2)
这是一个必须实施的愚蠢的“安全功能”,以避免一些粗心的人在他们的网站上显示他们的数据库密码(因为他们忘了关闭调试)。 因此,如果关键字“密码”,“架构”等在数组中,则该值将被隐藏。
只需使用pr(),var_dump(),print_r()或任何其他不这样做的方法。
PS:你可以发现看看代码(https://github.com/cakephp/cakephp/blob/master/lib/Cake/Utility/Debugger.php#L449)
答案 1 :(得分:0)
因为密码是哈希的,并且有超过4个字符。您必须检查密码并在beforeSave中验证哈希之后:)
您正在使用哪种版本的蛋糕?