我有一个非常奇怪的问题,我创建了一个简单的表单来将用户添加到数据库中。
代码运行得很好,用户被正确地保存到数据库中。
但是。。。
我在使用验证时遇到了问题,这是关于密码字段的验证数组的摘录:
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
数组中写的消息。
此问题仅发生在密码字段上。
为了避免一些粗心的人在他们的网站上显示他们的数据库密码(因为他们忘记关闭调试),必须实现一些愚蠢的"安全功能"。因此,如果密钥"password"、"schema"等在数组中,则该值将被隐藏。
只需使用pr()、var_dump()、print_r()或任何其他不这样做的方法。
附言:你可以看看代码(https://github.com/cakephp/cakephp/blob/master/lib/Cake/Utility/Debugger.php#L449)
因为密码是散列的,并且有超过4个字符。您必须在beforeSave:)中检查密码和验证后哈希
你用的是哪种蛋糕?