CakePhp cakesession不使用蛋糕php调试工具包

时间:2012-12-27 06:32:40

标签: cakephp-2.2

我在我的项目中实现了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.

请帮我解决这个问题。

1 个答案:

答案 0 :(得分:2)

这里发生的事情是通过设置:

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

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

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

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

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