beforeSave()返回了一些错误

时间:2010-06-12 14:27:46

标签: cakephp

我在HTML表单中有两个简单的输入文本字段:

<input type="text" name="data[User][name]" id="data[User][name]">   
<input type="text" name="data[User][pswd]" id="data[User][pswd]">    

Controller捕获数据的操作脚本如下:

 function register(){ 
          $temp = $this->data;                       
          if(strlen($temp['User']['pswd'])>6) {           
            if ($this->User->save($this->data)) {
            $this->Session->setFlash('Data was Saved');         
                                                }
                                   }           
        } // this script works

在Model控制器中,我得到了以下几行代码:

  function beforeSave() {
     $raw = $this->data;
 if(strlen($raw['User']['pswd'])>6){
     md5($raw['User']['pswd']);        
 }
 return true;
                         } // this script failed to work

数据已成功存储到数据库中,但未经过任何MD5加密 我认为模型脚本中必定存在一些错误,因为我看到一些错误在保存数据后闪现,但显示错误的屏幕在成功保存数据后立即刷新
我无法看到导致问题的错误细节。

你可以帮帮我吗?

编辑:

我已经修改了beforeSave的代码,但它仍然无法工作:

function beforeSave() {
     $raw = $this->data;
 if(strlen($raw['User']['pswd'])>3){
     $raw['User']['pswd'] = md5($raw['User']['pswd']);      
 }
 return true;
                         }

1 个答案:

答案 0 :(得分:2)

$raw是一个局部变量,因此不存在于beforeSave方法之外。根据您的使用情况,您可以简单地覆盖用户提交的值:

$this->data['User']['pswd'] = md5($raw['User']['pswd']);