2011-04-14 28 views
1

我正在运行CakePHP 1.3.8 stable并且我遇到了表单数据的问题。当我提交表单时,我可以在AppController中调试时看到$this->data中包含的数据,但在操作所在的子控制器中为空。

这里是我的AppController:

class AppController extends Controller { 
     var $components = array('Auth', 'Session'); 

     function beforeFilter() { 
       // Data is not empty here 
       $this->Auth->authenticate = ClassRegistry::init('User'); 
       $this->Auth->allow('register', 'index'); 
       parent::beforeFilter(); 
     } 
} 

这是我UsersController:提前

class UsersController extends AppController { 

     var $name = 'Users'; 
     function register() { 
       // Data empty at this point 
       if(!empty($this->data)) { 
         if($this->data['User']['password'] == $this->Auth->password($this->data['User']['password_confirm'])) { 
           $this->User->create(); 
           $defaultRole = $this->User->Role->getDefaultRole(); 
           $this->data['User']['role_id'] = $defaultRole['id']; 
           if($this->User->save($this->data)) { 
             $this->redirect(array('action' => 'index')); 
           } 
         } 
       } 
     } 
} 

的形式张贴到/用户/注册

谢谢!

回答

0

我想出了问题所在。我在我的用户模型中使用自定义哈希方法,并在hashPasswords函数内我没有返回$数据对象。因此,$ data被hashPasswords函数吞噬了,永远不会再被看到。

感谢您的期待,我希望这可以帮助你,如果你犯了类似的错误!

0

还在视图或元素中查找未终止的表单标记。

相关问题