加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

CakePHP无法从lib到达CakeSession

发布时间:2020-12-13 16:54:40 所属栏目:PHP教程 来源:网络整理
导读:我在Cake PHP 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 myfunct
我在Cake PHP 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());

  }
}

什么会使某些控制器/操作的会话变空?

解决方法

加载库时出现拼写错误.

App::uses('MyLib ','Lib');

查看MyLib后的空白区域?它应该是:

App::uses('MyLib','Lib');

你也误用了print_r函数.第二个参数告诉函数是否要返回信息而不是打印信息.你应该做:

print_r(MyLib::myfunction2());

虽然你也可以这样做:

$my_session = print_r(MyLib::myfunction2(),true);
echo $my_session;

http://php.net/manual/en/function.print-r.php

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读