在CodeIgniter-PHP中加载多个库
我需要在一个CI控制器中加载2个以上的库,并调用它们的成员函数。我试过以下方法,但没有用 一, 二, 三, 四,在CodeIgniter-PHP中加载多个库,php,codeigniter,Php,Codeigniter,我需要在一个CI控制器中加载2个以上的库,并调用它们的成员函数。我试过以下方法,但没有用 一, 二, 三, 四, 我已经交换了上述4种情况下的装载顺序。第二个提到的不加载 在所有情况下,仅加载第一个提到的库,并且此通知针对第二个库显示 遇到PHP错误 严重性:通知 消息:未定义的属性:Unify::$libb 文件名:controllers/Unify.php 行号:30 我在CI用户手册上找不到任何解决方案。我做错了什么?在CI中加载多个库只需传入它数组 $this->load->
我在CI用户手册上找不到任何解决方案。我做错了什么?在CI中加载多个库只需传入它数组
$this->load->library( array('liba', 'libb') );
因为你不包括
$CI =& get_instance();
控制器内是控制器文件夹中的文件。如果是,则可能没有正确扩展控制器。 比如: 否则您需要使用
$CI=&get_instance()代码>在您的文件中
然后使用
$CI->load->library('your_library');
编辑:
注意:检查您的库文件在您的文件夹结构中是否大写,如Libb.php
每当您使用库和帮助程序并且需要CI中的内置方法时,请使用
$CI =& get_instance();
然后像这样使用它
$CI->load->helper('url');
$CI->load->library('session');
$CI->config->item('base_url'); //...etc
有关更多信息,请参阅
或者,为了获得更好的解决方案,您可以使用codeigniter+HMVC从另一个控制器调用控制器,避免任何冲突并简化故障排除,请参阅
干杯 我认为你们图书馆的问题在于图书馆馆藏,而不是他们。为代码交换加载一些库是正常的(先加载libb,然后加载liba)。libb加载成功,但liba没有。好的,如果两个库都在调用其他控制器,您将遇到问题,请使用$CI=&get_instance();在库内部,而不是$this->xxx->yyy(),然后像这样调用您的实例:$your_variable=$CI->xxx->yyy()。每当您使用库并且需要来自CI的内置方法时,请使用$CI=&get_instance();然后像这样使用$CI->load->helper('url')$CI->load->library(“会话”)$CI->config->item('base_url');等有关更多信息,请参阅尝试使用著名的php方法,看看它是否有效$result_a=new liba(),$result_b=new libb(),然后查看它是否如您所期望的那样工作,如果没有,那么您的代码一定有问题。。我的错误。我确实通过了阵列。。没用。让我编辑我的问题。图书馆里有问题。与其打电话给图书馆,不如查一下你的图书馆代码。我想是的,就像我说的:)@saty。如果我只加载其中一个库。我确实得到了结果。@saty$CI=&get_instance();-为什么?是,我的控制器在控制器文件夹中。我已将控制器扩展到CI_控制器。我还使用了get_instance()。带或不带失败如果它在您的控制器文件夹中,您不必使用$CI=&get_instance();您可以简单地使用$this->load->library('xyz')是的,我知道。就像我说的。它不起作用,我所有的文件都是这样的。而且类名是“像这样”谢谢Nassim。我现在已经转到其他项目。我回来后一定会试试你的建议。谢谢!感谢您的回复,HMVC看起来非常适合我的下一个项目,但我当前的项目是MVC CodeIgniter风格的。HMVC要求我将整个项目更改为模块??如果是的话,那就是大量的返工。我只需要能够从一个控制器的5-6个不同的php文件中调用每个函数。php文件现在是控制器,但我可以灵活地将其变成一个库等。是否可以使用HMVC而不进行太多的代码重组?好的,我正在使用codeigniter进行一个大项目,仅使用MVC,让我告诉你,我可以在大约1小时内将所有代码从MVC移动到HMVC,因为当您将控制器移动到模块时,您也可以将它们的库移动到同一模块下,所以您不会丢失任何东西,相反,它只会获得灵活性。如果你没有使用codeigniter3(像我一样),你可以跟随这个视频开始,然后跟随这个视频你会有一个问题,但这是如何修复codeigniter 2.x的问题昨天在这个问题上有了突破。问题是库的输出不好。我已经解决了这个问题,现在我可以正常加载多个库,就像我在问题中描述的那样。然而。。。为了使用内置函数,我还必须在库中使用$CI=&getInstance。因此,如果你把它作为答案(我对这个问题的最新评论)发表,我会接受。
$CI =& get_instance();
myController extends CI_Controller{}
$CI->load->library('your_library');
$CI =& get_instance();
$CI->load->helper('url');
$CI->load->library('session');
$CI->config->item('base_url'); //...etc