8

我想在我的项目中使用模块化扩展 HMVC,如下所示:

modules  
      module01
            models
                models01.php
            controllers
                controller01.php
            views
                views01.php
      module02
            models
                models01.php
            controllers
                controller01.php
            views
                views01.php
      ‘
      ‘

我想使用'models01.php' module01,有什么办法吗?

4

4 回答 4

28
$this->load->model("module01/models01");

您可以像这样从任何模块调用任何模型。经测试。

于 2013-02-11T09:38:13.000 回答
0

添加模块名称后跟模型名称,确保每个单词都小。我通过使用这段代码解决了我的问题。

$this->load->model('settings/settings_model','settings_model');
于 2020-04-07T18:02:41.373 回答
0

在我的情况下使用$this->load->model("module01/models01");不起作用

但是在调试了几个小时后,我找到了如下解决方案,我将使用与提问者相同的示例进行解释:

因此,该解决方案在我的情况下不起作用,因为我的模块名称为Module01(我的目录名称中的第一个字母是大写字母),即使我在加载模型时使用相同的名称,就像$this->load->model("Module01/models01");它不起作用一样。

然后在尝试了很多不同的案例之后,我找到了可行的解决方案,并且想要分享一些我们必须遵循的规则,如果我们在 codeigniter 中使用 hmvc 并在一个控制器中加载多个模型,如下所示:

  • 文件夹中的目录名称modules必须是小写的(应该是module01not Module01。)

  • 控制器和模型文件名的第一个字母必须是大写字母Module01 and Models01参见下面的示例)。

  • 控制器和模型的类名的第一个字母必须大写

    // module01/Module01.php
    class Module01 extends MX_Controller {
       //some code
    }
    
    // module01/Models01.php
    class Models01 extends CI_Model {
       //some code
    }
    
于 2020-12-24T12:21:31.733 回答
0
$this->load->model('module/Modelname','alise'); 

记住模型名称的第一个字母应该是大写

$this->load->model("module01/Models01",'models01');
$this->models01->function_name();
于 2021-05-20T04:25:04.193 回答