我有2个控制器,我在一个控制器中设置了一个会话变量,并试图在另一个控制器中访问它。但是它没有采用我指定的值。
在第一个控制器中,
$this->Session->write('category',$id);
echo $this->Session->read('category'); //Outputs 17 which is correct
在第二个控制器中,
echo $this->Session->read('category'); //Outputs images.jpg
我已经检查过,会话变量类别永远不会取值images.jpg。
答案 0 :(得分:0)
它可以是两件事之一:
1)记得在app_controller中加载会话组件
<?php
App::import('Lib', 'permission/Permission');
class AppController extends Controller {
var $components = array('Session');
}
?>
2)在config文件夹的core.php文件中,您可能将session.start变量设置为false
Configure::write('Session.start', true);
此变量表示是否自动启动会话。
编辑:我读错了抱歉,你正在改变你的变量尝试将变量的名称更改为categoryid或类似的东西,如果它工作,它意味着你确实在某处更改它。如果你在linux中做一个grep -R“$ this-&gt; Session-&gt; write('category'”