【发布时间】:2014-11-04 21:14:53
【问题描述】:
我在 CakePHP 2.5.5 的 App/Lib 文件夹中添加了一个名为 MyLib 的库:
App::uses('CakeSession', 'Model/Datasource');
class MyLib {
public static function myfunction1() {
return CakeSession::read('Config.language');
}
public static function myfunction2() {
return $_SESSION;
}
}
我在App/Config/bootstrap.php里面定义了:
App::uses('MyLib', 'Lib');
在 MyController1 中我这样使用它。
myAction 给出空输出:
当我检查时,我发现 MyController1 的会话数据为空。
class MyController1 {
function myAction1(){
echo MyLib::myfunction1();
print_r(MyLib::myfunction2());
}
}
我还有另一个名为 MyController2 的控制器。
当我使用 MyLib::myfunction1() 时,MyController2 一切正常。
class MyController2 {
function myAction2(){
echo MyLib::myfunction1();
print_r(MyLib::myfunction2());
}
}
什么会使某些控制器/操作的会话为空?
【问题讨论】:
-
你在哪里写'Config.language'到会话?
-
由于两个控制器之间的结果不同,这可能是
beforeFilter()不调用其父beforeFilter()在 AppController 中定义的经典问题,这会做一些必要的事情,以便你的库工作吗?
标签: php cakephp cakephp-2.5