0

我在我的项目中实现了 cakephp debugkit 插件。在我的 appcontroller.php 文件中,我添加

 var $helpers = array('Html', 'Form', 'Paginator', 'Js', 'Session'); 
 public $components = array('DebugKit.Toolbar');

 and in before filter i implement 
function beforeFilter() {
    if ($this->Session->check('GlobalFields')==false) {
    $this->Session->write('GlobalFields.tbl_assets.template_information_global', '');
    $this->Session->write('GlobalFields.tbl_assets.hilitelibrary', '');
    $this->Session->write('GlobalFields.tbl_assets.hilitesortedby', '');
    $this->Session->write('GlobalFields.tbl_assets.sc_url_prefix', '');
    }
}
   but it showing error 
   Fatal error: Call to a member function check() on a non-object.
   and i check that debug($this->Session) returns null.

 if i remove public $components = array('DebugKit.Toolbar'); then its run correctly.
 but i want to implement that debugkit with session.

请帮我解决这个问题。

4

1 回答 1

2

那么这里发生的是通过设置:

public $components = array('DebugKit.Toolbar');

您正在覆盖包含SessionComponent的默认值。您将SessionHelper附加到$helpers变量中,但这两个类是不同的 - 第一个(组件)允许您与 Controller 中的会话数据进行交互,第二个(助手)用于您的视图中。

因此,您的问题的解决方案是设置:

public $components = array('Session','DebugKit.Toolbar');

此外,如果您在全球范围内使用任何其他组件,您也应该在其中添加它们。

于 2012-12-27T13:48:22.337 回答