它应该很简单,但事实并非如此。
我有一个希望使用其他库的库,但有些东西不合适。
两个库都存在于 system/cms/libraries 中,因为据我所知,addons/shared_addons/libraries 完全没用,库需要自动加载(似乎 system/cms 本质上是系统/应用程序,但如果有错请纠正我)。顺便说一句:只是为了好玩,我在 shared_addons/libaries 中放置了一个库,只是为了看看我是否可以从模块中调用 if;我不能。为什么会在那里?
Lib1
-需要数据库
-需要 lib2
Lib2
- 需要会话
这就是发生的事情。控制器 [模块] 加载;调用 lib1 调用 lib2 会引发错误。Lib1 将被所有模块控制器调用。Lib2 使用之前设置的会话数据,并且仅由 lib1 调用。
在 lib2 中,我使用 $CI=get_instance() 来启用 CI 库(例如数据库、会话)。但是,我无法通过“致命错误:在非对象上调用成员函数 userdata()”;这被称为
//system/cms/libraries/lib2.php
$this->CI =& get_instance();
//$this->load->library('database'); == "can't find class database"
$ekeyLoc = $this->CI->session->userdata('ronery');
现在,如果我在模块控制器中运行它,它会按预期工作。
所以用谷歌搜索那个错误,很多“数据库未加载”出现了。只是为了确保,我试图加载数据库,但因为我,它找不到类 'database' 注意:数据库正在自动加载。
当您分配 CodeIgniter 超级对象时,我假设它正在抓取整个 jabloney,对吗?我是这么想的。但为了确保这一点,我决定尝试在模块/控制器中加载数据库类,结果发现,因为我找不到。
我尝试查看 pyroCMS 文档以找出任何诡计,但没有太多,也对我的情况没有帮助。
为什么我不能从模块控制器加载核心库?
为什么我不能将核心库加载到 system/cms/libraries 中的自定义库中?
为什么我分配的 CodeIgniter 超级对象不包含会话/数据库垃圾?
为什么我不能从 /addons/shared_addons/library 加载库?
为什么调用$this->session->userdata()
来自模块控制器而不是来自 system/cms/libraries 文件夹中的库,即使已经分配了 CodeIgniter 超级对象?
谢谢。
在没有答案的 2 天之后,我发现继续寻求帮助不可避免地导致这个问题成为谷歌搜索结果的顶部,这既令人沮丧又好笑。FML。