我需要使用模块化扩展从我的模块中加载一个库
我的结构是这样的
模块/
模块/类别/库
- categories_class.php
模块/类别/控制器/
类别.php
我需要在类别控制器中加载类别库。
有人帮我吗?
我需要使用模块化扩展从我的模块中加载一个库
我的结构是这样的
模块/
模块/类别/库
模块/类别/控制器/
类别.php
我需要在类别控制器中加载类别库。
有人帮我吗?
我看到两个问题..
根据您的问题,您的类别模块组织不正确。HMVC 的全部目的是划分代码 ex;模块。鉴于您目前的问题,该结构如何允许您复制模块文件夹并将其粘贴到另一个应用程序中?答:不会。.
按照下面的例子
它应该是应用程序根目录中的以下内容:
/application/
config
modules/
categories/
views
controllers/
categories.php
libraries/
categories_class.php
models
libraries
core
controllers
根据用户指南:https ://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc/wiki/Home
您必须在模块文件夹中引用的任何内容前面加上模块名称的前缀。
例如: $this->load->library('module/library');
或者在你的情况下: $this->load->library('categories/categories_class');
我之前曾尝试排除模块文件夹名称,但从未让它工作。
控制器可以作为其他控制器的类变量加载,
$this->load->module(’module/controller’);
或者仅$this->load->module(’module’);
在控制器名称与模块名称匹配的情况下加载。任何加载的模块控制器都可以像库一样使用,即:
$this->controller->method()
,但它可以独立于调用者访问自己的模型和库。
我对这种错误行为有另一种看法,这让我花了大约 3 个小时,实际上我总是在 Codeigniter 上的自定义库中使用大写和小写的组合。
对于 Codeigniter HMVC 的 Wiredesigz,请记住库加载器的行为与 CI 本身相同,始终使用小写的库类名而不是实际类名(可能是大写和小写的组合)