从模块 hmvc codeigniter 加载控制器
Load controller from module hmvc codeigniter
我在 codeigniter 中有我的普通 mvc 目录,例如:
- 型号
- 观看次数
- 控制器
但是我使用 wiredesigz "plugin" 来支持 hmvc,所以我有这样的结构:
- 型号
- 观看次数
- 控制器
- 模块
- 测试模块
- 型号
- 观看次数
- 控制器
我的根控制器文件夹中有这段代码:
class Core_Test_Controller extends MX_controller
{
public function __construct()
{
parent::__construct();
}
public function getText() {
return "hi";
}
}
而这个在 /Modules/TestModule/Controllers:
class InsertController extends MX_Controller
{
public function __construct(){
parent::__construct();
}
function testIt{
$coreTestController = new $this->Core_Test_Controller();
$text = $coreTestController->getText();
print_r($text);
}
}
但是我得到的错误是 class Core_Test_Controller 没有找到。为什么我不能从另一个控制器访问该控制器?这甚至可能吗?
已修复:
Modules::load('../Core_Test_Controller/')->getText();
文件夹名称首先小写。对于控制器名称和型号等,只有第一个字母必须大写 UCFIRST 如此处所述 http://www.codeigniter.com/user_guide/general/styleguide.html#file-naming HMVC 不会选择 CI_Controllers 仅控制器 MX_Controllers
class Core_test_controller extends MX_controller {...}
class Insertcontroller extends MX_Controller {...}
如这里所述
<?php
/** module and controller names are different, you must include the method name also, including 'index' **/
modules::run('module/controller/method', $params, $...);
/** module and controller names are the same but the method is not 'index' **/
modules::run('module/method', $params, $...);
/** module and controller names are the same and the method is 'index' **/
modules::run('module', $params, $...);
/** Parameters are optional, You may pass any number of parameters. **/
我在 codeigniter 中有我的普通 mvc 目录,例如:
- 型号
- 观看次数
- 控制器
但是我使用 wiredesigz "plugin" 来支持 hmvc,所以我有这样的结构:
- 型号
- 观看次数
- 控制器
- 模块
- 测试模块
- 型号
- 观看次数
- 控制器
- 测试模块
我的根控制器文件夹中有这段代码:
class Core_Test_Controller extends MX_controller
{
public function __construct()
{
parent::__construct();
}
public function getText() {
return "hi";
}
}
而这个在 /Modules/TestModule/Controllers:
class InsertController extends MX_Controller
{
public function __construct(){
parent::__construct();
}
function testIt{
$coreTestController = new $this->Core_Test_Controller();
$text = $coreTestController->getText();
print_r($text);
}
}
但是我得到的错误是 class Core_Test_Controller 没有找到。为什么我不能从另一个控制器访问该控制器?这甚至可能吗?
已修复:
Modules::load('../Core_Test_Controller/')->getText();
文件夹名称首先小写。对于控制器名称和型号等,只有第一个字母必须大写 UCFIRST 如此处所述 http://www.codeigniter.com/user_guide/general/styleguide.html#file-naming HMVC 不会选择 CI_Controllers 仅控制器 MX_Controllers
class Core_test_controller extends MX_controller {...}
class Insertcontroller extends MX_Controller {...}
如这里所述
<?php
/** module and controller names are different, you must include the method name also, including 'index' **/
modules::run('module/controller/method', $params, $...);
/** module and controller names are the same but the method is not 'index' **/
modules::run('module/method', $params, $...);
/** module and controller names are the same and the method is 'index' **/
modules::run('module', $params, $...);
/** Parameters are optional, You may pass any number of parameters. **/