CakePHP $ this->数据在ChildController中为空,在AppController中不为空

时间:2011-04-14 14:37:06

标签: php cakephp cakephp-1.3

我正在运行CakePHP 1.3.8稳定版,我的表单数据有问题。当我提交表单时,我能够在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'));
                                }
                        }
                }
        }
}

表单将发布到/ users / register

提前致谢!

2 个答案:

答案 0 :(得分:0)

我弄清楚问题是什么。我在我的Users模型中使用自定义散列方法,在hashPasswords函数中我没有返回$ data对象。因此,$ data数据刚被hashPasswords函数吞没,永远不会被再次看到。

感谢您的关注,如果您犯了类似的错误,我希望这会对您有所帮助!

答案 1 :(得分:0)

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