【发布时间】:2014-11-18 09:13:46
【问题描述】:
如果在用户创建表单时仅存在唯一性验证错误并给出“页面未正确重定向”错误,则 isUnique 验证不起作用。 型号代码为:
class User extends AppModel {
public $validate = array(
'username' => array(
'notEmpty' => array(
'rule' => array('email'),
'message' => 'Please supply a valid email address.'
),
'isUnique' => array(
'rule' => 'isUnique',
'message' => 'This email has already been taken.'
)
),
'password' => array(
'min' => array(
'rule' => array('minLength', 3),
'message' => 'Password must be at least 3 characters.'
),
'required' => array(
'rule' => 'notEmpty',
'message' => 'Please enter a password.'
),
),
'cpassword' => array(
'required' => 'notEmpty',
'match' => array(
'rule' => 'validatePasswdConfirm',
'message' => 'Passwords do not match'
)
)
);
}
当我输入不匹配的密码时,它会给出“密码不匹配”的错误,并且还会给出错误“此电子邮件已被占用”。如果用户表中已经存在用户名,但问题是当我只输入已经存在的用户名并输入匹配密码时,它会转到错误页面“页面未正确重定向”。 我该如何解决这个问题? 提前致谢。
【问题讨论】:
-
如果我从模型中删除 isUnique 验证,即使这样我也会进入“页面未正确重定向”页面。
-
我也在这里问过这个问题:stackoverflow.com/questions/27012195/…
-
其实就是注销当前登录用户.....
-
您能发布匹配的控制器代码吗?通常,如果验证不起作用,您应该被重定向到编辑表单并显示错误消息,但您的控制器中的重定向可能在某处出现错误。
-
我还建议您在不使用 Auth 组件的情况下测试验证。这样你就可以更清楚地看到问题出在哪里了。
标签: cakephp