gpt4 book ai didi

php - codeigniter+HMVC 跨模块调用controller->method

转载 作者:可可西里 更新时间:2023-10-31 22:19:38 27 4
gpt4 key购买 nike

我正在拔掉我所有的头发......一直在搜索每一个线程,如果有人能给我指出一个工作示例,我将不胜感激。

根据文档:https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc我可以调用另一个模块-> Controller 使用

modules::run('module/controller/method', $params);
modules::load('module/controller/method', $params);
or
$this->load->module('module/controller');
$this->controller->method();

问题:从未调用“method()”。每次只调用 Controller 的构造函数。

目标是将独立的 MVC 构建为模块并供其他 Controller 使用。但是无论我做什么,它只调用构造函数,不调用方法。我几周前开始使用 HMVC,是我遗漏了文档中的某些内容还是没有以这种方式使用?
这是设置:

modules
|--ztest1
| |--controller/c1.php
|--ztest2
|--controller/c2.php

class C1 extends MX_Controller {
function __construct() {
parent::__construct();
}
function index () {
Modules::run('ztest2/c2/testc2/');
//Modules::load('ztest2/c2/testc2/');
//$this->load->module('ztest2/c2/testc2/');
//$this->c2->testc2();
}
}

class C2 extends MX_Controller {
function __construct() {
parent::__construct();
echo __FILE__." // ".__CLASS__."/".__FUNCTION__.PHP_EOL;
}
function testc2(){
echo __FILE__." // ".__CLASS__."/".__FUNCTION__.PHP_EOL;
}
}

output:
/app/modules/ztest2/controllers/c2.php // C2/__construct

附加说明:脚本没有错误或警告。它只是悄悄地调用构造函数。

最佳答案

多谢楼主指点,终于找到原因了。 HMVC 文档确实缺少一些适合初学者的示例。

对于将来可能会发现此线程的任何人,请在此处更正用法:

to call module01/controller01/method00:

//method 1 CORRECT:
$ctlObj = modules::load('module01/controller01/');
$ctlObj->method00();
//or you could use chaining:
modules::load('module01/controller01/')->method00();

//method 1 WRONG:
modules::load('module01/controller01/method00'); //this will only load contructor

---
//method 2 CORRECT:
modules::run('module01/controller01/method00'); //no trailing slash!

//method 2 WRONG:
modules::run('module01/controller01/method00/');

---
//method 3 CORRECT:
$this->load->module('module01/controller01');
$this->controller01->method00();

我不明白为什么方法 3 在我第一次尝试时失败了...可能是因为我重新启动了 HTTPD?

关于php - codeigniter+HMVC 跨模块调用controller->method,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14947261/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com