带插件的CakePHP验证问题

时间:2010-12-19 15:40:30

标签: php forms validation cakephp

在我的CakePHP应用程序中,由于a kind previous suggestion,我已经设置了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视图中,这意味着验证本身不存在问题。

有没有人有任何想法?

1 个答案:

答案 0 :(得分:0)

function register() {
    if(!empty($this->data)) {
        $this->data['User']['password'] = $this->Auth->password($password);
        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());
        }
    }
}