2016-11-30 126 views
1

我有我的正常MVC目录的在像笨:负荷控制器HMVC笨

  • 模型
  • 查看
  • 控制器

但是我用的是wiredesigz “插件” 为HMVC支持,所以我有这样的结构:

  • 模型
  • 浏览
  • 控制器
  • 模块
    • TestModule
      • 模型
      • 浏览
      • 控制器

我有这样的代码在我的根控制器文件夹:

class Core_Test_Controller extends MX_controller 
{ 
    public function __construct() 
    { 
     parent::__construct(); 
    } 

    public function getText() { 
     return "hi"; 
    } 
} 

这在/模块/ TestModule /控制器:

class InsertController extends MX_Controller 
    { 
     public function __construct(){ 
      parent::__construct(); 
     } 

     function testIt{ 
      $coreTestController = new $this->Core_Test_Controller(); 
      $text = $coreTestController->getText(); 
      print_r($text); 
     } 
    } 

但我得到的错误类Core_Test_Controller不找到。为什么我无法从另一个控制器访问该控制器?这甚至有可能吗?

固定它:

模块::负载( '.​​./ Core_Test_Controller /') - >的getText();

回答

1

首先将小写字母命名为小写字母。只有第一个字母必须是控制器的名称和型号大写等UCFIRST这里解释 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. **/ 
+0

所以我不需要实例化类Core_Test_Controller? – da1lbi3

+0

模块运行加载控制器有通过这里看https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc – user4419336

+0

@ da1lbi3这是一个很老的教程没有太大的区别只是文件命名和类命名https:// www.youtube.com/watch?v=8fy8E_C5_qQ – user4419336