我目前的控制器&图书馆列于......
>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 / libraries / Test_lib.php'文件是:
class Test_lib
{
function __construct(){
echo 'library loaded <br>';
}
function doSomething(){
echo 'it works!';
}
}
当我转到网址“http://localhost/codeigniter-3.1.3/module1/test_cont”时 它说:
---------------------------------------------------
| An Error Was Encountered |
---------------------------------------------------
| Unable to load the requested class: Test |
---------------------------------------------------
我希望我能让你理解我的问题,如何解决这个问题?... (提前致谢)
答案 0 :(得分:2)
库名称不区分大小写。对象实例总是小写的。
function index(){
$this->load->library('Test_lib');
$this->test_lib->doSomething();
}
答案 1 :(得分:0)
在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();
}
控制器,如果没有application / 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 {
}
答案 2 :(得分:0)
最后我发现脚本里面有一个错误所以我虽然加载了库有任何问题,但我的库加载了:
$this->load->library('Test_lib');
答案 3 :(得分:0)
如果你在同一个模块中,那么你可以像这样加载库:
function index(){
$this->load->library('Test_lib');
$this->test_lib->doSomething();
}
但是如果你在不同的模块中并且想要从不同的模块加载库,那么:
function index(){
$this->load->library('module_name/Test_lib');
$this->test_lib->doSomething();
}