2011-12-10 49 views
0

我有一个控制器,我在表中添加一些注册值,但是在控制器中我想知道该页是否已验证,现在我的问题是当它进入模型和验证,并有一个错误,它会回到注册页面,但密码填入哈希值,所以我需要添加一些东西,如果(验证)这样做.. 。这里是我的代码如何验证是否从控制器验证的模型

控制器

<?php 
class UsersController extends AppController { 

    var $uses = array("User"); 
    var $components =array('Session'); 

    function index() 
    { 
     $this->set('users', $this->User->find('all')); 
     $this->layout = 'master_layout'; 
    } 

     function add() { 

      if (!empty($this->data)) { 
//HERE I WOULD LIKE TO KNOW IF THE VALIDATION FROM MY MODEL RETURNED VALID OR NOT 

      $this->data['User']['user_password'] = Security::hash($this->data['User']['user_password']); 
      if ($this->User->save($this->data)) { 
       $this->Session->setFlash('Your were registered!.'); 
           $this->redirect(array('action' => 'index')); 
      } 
      } 

     $this->layout = 'custom_layout'; 
     } 

} 
?> 

回答

0

这个最简单的办法是设置为value属性您密码输入为空。这是执行此操作的标准方法。

但是,如果您想知道错误是什么以及是否验证了模型,您还可以查看模型的$this->ModelName->validates()方法。

您也可以使用这种方法来获得该模型中的错误 - $this->ModelName->invalidFields()

食谱链接 - http://book.cakephp.org/view/1182/Validating-Data-from-the-Controller

这是CakePHP的1.3

+0

好吧,我可以试一下简单的解决方案,我会怎样这是我的密码输入看起来像echo $ this-> Form-> input('user_password',array('type'=>'password','label'=>'Password')) – user710502

+0

只需设置它到'$ this-> Form-> input('user_password',array('type'=>'password','label'=>'Password','value'=>''))'。这样用户将不得不再次填写密码。 – JohnP

+0

约翰我希望你不介意我问,但我是cakephp的新手,并且对我来说有点困难,因为我正在转换一个旧的php网站来使用蛋糕。我已经注册已经将数据保存到数据库与密码散列和一切使用蛋糕..现在我有登录在页面的顶部在一个div用户名和密码和一个按钮,当登录被点击它使用调用jquery ajax函数,并且如果删除了用户名和密码并显示欢迎消息..并且该div在整个网站中可见..我怎样才能用蛋糕做到这一点? (理论上)? – user710502