使用array()在codeigniter中加载多个库。第一个图书馆工作,但第二个没有

时间:2013-03-01 17:37:18

标签: php codeigniter

我正在我的主控制器中加载两个控制器,只加载第一个控制器。

class App extends CI_Controller {

    public function index() {
        $this->load->library(array('../controllers/effects', 
                             '../controllers/ingredients'));
        $data['ingredients'] = $this->ingredients->get_all();
        $data['effects'] = $this->effects->get_all();

        $this->load->view('header');      
        $this->load->view('main', $data);
        $this->load->view('footer');

    }
}

我收到错误Message: Undefined property: App::$ingredients。如果我像这样切换两个路径字符串

$this->load->library(array('../controllers/ingredients', '../controllers/effects'));

然后它说效果是未定义的,因此它看起来总是加载第一个控制器而不是第二个控制器。我也试过自动加载它们但是我得到了一个错误,比如“超出嵌套功能限制”等等。我做错了什么,我该如何解决这个问题呢?

2 个答案:

答案 0 :(得分:3)

将您的库文件放在libraries

内的CI文件夹中

现在您可以在控制器中加载库

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

在数组中加载多个库

$this->load->library(array('library_name_1', 'library_name_2'));

或者您可以在config / autoload.php中自动加载库

$autoload['libraries'] = array('library_name_1', 'library_name_2');

答案 1 :(得分:1)

您应该按照手册中关于libraries的说法进行操作。

您应该将库文件放在库文件夹中并使用

加载库
  

$这 - >负载>库( '名称');