2

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

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'));

然后它说效果是未定义的,所以看起来它总是加载第一个控制器而不是第二个。我也尝试过自动加载它们,但出现“超出嵌套函数限制”之类的错误。我做错了什么,我该如何解决?

4

2 回答 2

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');
于 2013-03-02T03:43:54.887 回答
1

您应该遵循手册中有关的内容。

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

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

于 2013-03-01T21:02:48.543 回答