我在我的项目中实现了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.
请帮我解决这个问题。
答案 0 :(得分:2)
这里发生的事情是通过设置:
public $components = array('DebugKit.Toolbar');
您将覆盖包含SessionComponent的默认值。
您将SessionHelper附加到$helpers
变量中,但这两个类是不同的 - 第一个(组件)允许您与Controller中的会话数据进行交互,第二个(帮助程序)是在您的观点中使用。
因此,问题的解决方案是设置:
public $components = array('Session','DebugKit.Toolbar');
此外,如果你在全球范围内使用任何其他组件,你也应该在那里添加它们。