0

我在 CI 3.0.3 和最新的HMVC Extension中编码时遇到了一个问题。我正在自动加载一些库、助手等等。会话库也是如此。现在我有几个控制器都工作正常,除了一个。

在该控制器中,我使用以下代码:

modules::run($module->module . '/' . $module->controller . '/' . $module->method, unserialize($block->configuration));

在使用这个静态函数时,我得到了错误:

Unable to locate the specified class: Session.php

日志说会话类已初始化。

INFO - 2015-12-01 09:41:40 --> Session: Class initialized using 'database' driver.

任何想法为什么我得到这个错误?

编辑: - - - - - - - - - - - - - - - - - - - - - - - - ----------------------

为了防止愚蠢的答案如下......

在 CI 中,每个请求不能调用超过 1 个控制器。因此,要实现HMVC,我们必须模拟控制器。它可以通过库来完成,或者通过这个“Modular Extensions HMVC”贡献来完成。

使用库和“模块化 HMVC”HMVC 类之间的区别是: 1. 无需在 HMVC 类中获取和使用 CI 实例 2. HMVC 类存储在模块目录中,而不是库目录中。

编辑 2:------------------------------------------------------------ ----------------------

更多问题:

  • 是的,会话库是问题所在
  • 是的,仅与此 HMVC 插件结合使用
  • 是的,仅当您使用静态方法时modules::run();
  • 不,我需要这种方法来模拟控制器中的控制器
4

1 回答 1

1

简单的。

如果要在控制器中加载控制器,请使用:

Modules::load();

或将其外包Modules::run();到主控制器加载的视图中。

简单的。

于 2015-12-01T13:27:16.403 回答