【发布时间】:2010-12-19 15:40:29
【问题描述】:
感谢a kind previous suggestion,在我的 CakePHP 应用程序中,我设置了 PersistantValidation 插件来在模型级别验证我的表单。该插件本质上使您可以在部分上使用模型验证,而无需将其重定向到底层页面(例如 register.ctp 视图或 login.ctp 视图)。
验证对登录表单很有效,但由于某种原因它在用户注册表单上无法正常工作。
控制器如下所示:
function register() {
if(!empty($this->data)) {
$name = $this->data['User']['name'];
$email = $this->data['User']['email'];
$password = $this->Password->generatePassword();
$this->data['User']['password'] = $this->Auth->password($password);
$this->User->create();
if($this->User->save($this->data)) {
$this->Session->setFlash(__('Your account has been created!', true));
$this->redirect(array('controller' => 'users', 'action' => 'offers'));
} else {
$this->redirect($this->referer());
}
}
}
PresistentValidation 组件也被正确设置和包含,因为它在同一个控制器的 login() 函数中工作得很好。当我运行这段代码时,什么也没有发生。没有远离部分的重定向,这很好,但错误不会出现。此外,错误确实显示在 register.ctp 视图中,这意味着验证本身没有问题。
有人有什么想法吗?
【问题讨论】:
-
快速提示:您可能不需要完整的密码模型。您可以在 User 模型中使用
generatePassword函数。 -
确保您没有对密码进行双重哈希 :)
-
你能发布你的用户模型的代码,更具体地说,你有任何验证代码
标签: php forms validation cakephp