2016-11-30 127 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