【问题标题】:CakePHP $this->data empty in ChildController, not empty in AppControllerCakePHP $this->data 在 ChildController 中为空,在 AppController 中不为空
【发布时间】:2011-04-14 14:37:06
【问题描述】:

我正在运行稳定的 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();
        }
}

这是我的用户控制器:

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

提前致谢!

【问题讨论】:

    标签: php cakephp cakephp-1.3


    【解决方案1】:

    我发现了问题所在。我在我的用户模型中使用自定义散列方法,在 hashPasswords 函数中我没有返回 $data 对象。因此,$data 就被 hashPasswords 函数吞没了,再也见不到了。

    感谢您的浏览,如果您犯了类似的错误,希望对您有所帮助!

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2019-01-24
        • 2016-04-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-20
        • 1970-01-01
        • 1970-01-01
        • 2014-05-04
        相关资源
        最近更新 更多