2012-03-23 117 views
0

我正在使用HMVC的库,我正在使用CI 2.1,并且我不能从基本的东西开始,有人可以告诉我如何在我作为模块工作时加载控制器的模型吗?如何使用CodeIgniter在HMVC上加载模型?

我看了这篇文档https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc/wiki/Home,我创建了config/routes文件。

控制器:

class Testcase extends MX_Controller { 
    function index() 
    { 
     echo "test1"; 
     $this->load->model('testcase/testcase_model'); 
     echo "test2"; 
    } 
} 

我用了“回声”,看看它失败,因为它不返回我任何错误......所以,当我加载模块,它根本不工作中,我也尝试过这种方式

$this->load->model('testcase_model',NULL,TRUE); 

,但仍然没有成功...

型号:

class Testcase_model extends MX_Model { 
    function __construct(){ 
     parent::__construct(); 
    }  

    function testcase(){ 
     return "success"; 
    } 
} 

当我安装库时,我将第三方文件夹复制到核心文件夹中。

有人可以给我一些线索,这个问题?

谢谢!

+0

的HMVC的版本是5.4 – jpganz18 2012-03-23 17:35:39

+0

什么是你模块的文件夹结构?对我来说,它看起来很好..可能是它没有得到加载类的正确路径。 – Broncha 2012-03-23 18:05:24

+0

结构是application/modules/testcase/controllers/testcase models/testcase_model和views/testcase_view – jpganz18 2012-03-23 18:24:43

回答

6

我没有注意到MX_Model,只是扩展了CI_Model。

+0

是的,你是完全正确的,那是问题所在,谢谢! – jpganz18 2012-03-24 21:22:22

0

在HMVC文件/文件夹应该有以下结构:

application/modules/testcase 
controllers 
    testcase 
models 
    testcase_model 
views 
    testcase_view 

如果你是从你的模块控制器中加载模型,你应该加载像这样

$this->load->model('testcase/testcase_model','tm'); 

你应该给模块名称也是如此。如果没有,它会在应用程序/模型目录中查找。

+0

谢谢,结构是一样的.. 。我尝试命名控制器..仍然没有工作......我应该在版本5.4中配置额外的东西吗? – jpganz18 2012-03-23 18:37:30

0

对于CI + HMVC予加载的加载模块此:

$this->load->model('model_name'); 
$this->model_name->method($data); 
4

可以使用

$这 - >负载>模型( 'YOUR_MODULE_FOLDER_NAME/MODEL_NAME'); 加载你的外部模型。

问候,

的NiMesh Parekh的

0

更新模块/测试用例/模型/ Testcase_model。

class Testcase_model extends CI_Model { 

    function __construct() 
    { 
     // Call the Model constructor 
     parent::__construct(); 
     $this->load->database(); 
    } 
    function get_login(){ 
    $query=$this->db->query("SELECT * FROM test"); 
    return $query; 
    } 

} 

,并从模块控制器调用

$this->load->model('Testcase/Testcase_model'); 
$data['result']=$this->Testcase_model->get_login(); 

希望这有助于:)