0

它应该很简单,但事实并非如此。

我有一个希望使用其他库的库,但有些东西不合适。

两个库都存在于 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。

4

1 回答 1

0

第一件事:

$this->load->library('database');

这不是有效的 CodeIgniter 代码,就像他们的文档所说的那样:

$this->load->database();

正如您已经指出的那样,尽管这是自动加载的,所以无论如何都不需要这样做。

为什么我不能从模块控制器加载核心库?

你可以。

为什么我不能将核心库加载到 system/cms/libraries 中的自定义库中?

你可以。

为什么我分配的 CodeIgniter 超级对象不包含会话/数据库垃圾?

确实如此。

为什么我不能从 /addons/shared_addons/library 加载库?

这在 1.3.x 中是不可能的,但应该在 1.3.2 中修复,如果自 2.0 以来没有修复。

我不知道您在做什么或为什么会遇到此类问题,但是没有任何示例代码或对您使用的 PyroCMS 版本的描述,我无法提供任何帮助。

如果您被困了两天,为什么没有在我们的论坛上发帖?如果您已在我们的论坛上发帖(我没有看到任何相关内容),您应该在此帖子中添加指向您的论坛主题的链接,以帮助其他人回答问题。

这不是第一次有人被困在互联网上,但你表现得像这样。来吧,你知道这是怎么回事!:)

于 2011-11-17T15:49:26.683 回答