мой текущий контроллер & библиотеки перечислены далее …
>application/
- config/
- controllers/
- ...
- models/
- modules/
- module1/
- controllers/
- Test_cont.php
- models/
- views/
- libraries
- Test_lib.php
- third_party/
- views/
- ...(other files & folders)
‘modules / module1 / controllers / Test_cont.php’ это:
class Test_cont extends MY_Controller
{
function __construct(){
parent::__construct();
}
function index(){
$this->load->library('Test_lib');
$this->Test_lib->doSomething();
}
}
Файл ‘modules / module1 / library / Test_lib.php’:
class Test_lib
{
function __construct(){
echo 'library loaded <br>';
}
function doSomething(){
echo 'it works!';
}
}
когда я иду на URL «Http: //localhost/codeigniter-3.1.3/module1/test_cont‘
это говорит:
---------------------------------------------------
| An Error Was Encountered |
---------------------------------------------------
| Unable to load the requested class: Test |
---------------------------------------------------
Я надеюсь, что смогу заставить вас понять мою проблему, как решить эту проблему? …
(Заранее спасибо)
Если вы находитесь в том же модуле, вы можете загрузить библиотеку следующим образом:
function index(){
$this->load->library('Test_lib');
$this->test_lib->doSomething();
}
но если вы находитесь в другом модуле и хотите загрузить библиотеку из другого модуля, то:
function index(){
$this->load->library('module_name/Test_lib');
$this->test_lib->doSomething();
}
Имена библиотек не чувствительны к регистру. Экземпляры объекта всегда будут в нижнем регистре.
увидеть создание библиотек
function index(){
$this->load->library('Test_lib');
$this->test_lib->doSomething();
}
В hmvc необходимо указать имя модуля при загрузке библиотеки, модели и т. Д.
function index(){
// You don't need to use upper case when loading library only class and filename
$this->load->library('module-name/test_lib');
$this->test_lib->doSomething();
// Loading model hmvc
$this->load->model('module-name/test_model');
$this->test_model->doSomething();
}
Контроллер, если нет приложения / core / MY_Controller.php, использовать MX_Controller
Имя файла Test_cont.php
class Test_cont extends MY_Controller
{
}
Если вам нужно использовать MY_controller, убедитесь, что вы делаете это в application / core / MY_Controller.php
<?php
class MY_Controller extends MX_Controller {
}
наконец, я обнаружил, что внутри скрипта произошла ошибка, поэтому у меня возникли проблемы с загрузкой библиотеки, но моя библиотека загрузилась:
$this->load->library('Test_lib');