用户
 找回密码
 入住 CI 中国社区
搜索
楼主: Hex
收起左侧

[核心代码 Core] [3.0.6]为 CI 增加 HMVC 支持【更新日期:2016.4.25】

    [复制链接]
 楼主| 发表于 2013-4-7 11:40:19 | 显示全部楼层
yumianyang 发表于 2013-4-7 10:38
是这样一种情景:由CI中的(即不是模块中的)控制器加载view层,然后在view层中加载模块中的控制器。当用 ...

现在支持由Module的控制器直接接收处理请求,但是CI的控制器就不会收到请求了。
为什么由Module处理过的请求,还需要由CI控制器来处理呢?
发表于 2013-4-7 16:32:17 | 显示全部楼层
Hex 发表于 2013-4-7 11:40
现在支持由Module的控制器直接接收处理请求,但是CI的控制器就不会收到请求了。
为什么由Module处理过的 ...

有很多请求,当Module没有办法处理的时候,比如在Module_1中发出个请求,需要在Module_2中做出响应,那中间就需要CI控制器来传递了,我感觉单单由Module处理的请求只能返回Module中的view层,但整个项目的view层是CI的,即让Module处理返回的只是页面中的一部分,而不是我们想要的整个页面;若要返回CI中的view层,那是要Module中view层的请求直接让CI中的控制器来响应(即Module中view层的请求直接链接到CI控制器中的方法)。老大,不知道我理解的到不到位?
 楼主| 发表于 2013-4-7 18:11:51 | 显示全部楼层
yumianyang 发表于 2013-4-7 16:32
有很多请求,当Module没有办法处理的时候,比如在Module_1中发出个请求,需要在Module_2中做出响应,那中 ...

说的我有点晕。。。呵呵~

我的想法是Module的事情由Module自己处理,也就是Module可以通过特殊URL访问Module自己的控制器,这个操作是完全独立的,目的就是为了解耦,让这个Module尽量和系统没有耦合。

不知道你的需求是什么呢?
发表于 2013-4-7 19:56:25 | 显示全部楼层
本帖最后由 yumianyang 于 2013-4-7 21:05 编辑
Hex 发表于 2013-4-7 18:11
说的我有点晕。。。呵呵~

我的想法是Module的事情由Module自己处理,也就是Module可以通过特殊URL访问Mo ...

嗯,老大,您的解耦思想我明白了。我参照您原帖内容的意思,模块的使用方法之一:在CI的view层加载,成为页面的一部分。当请求通过浏览器url直接访问Module自己的控制器,那返回的不就是Module自己的view,即页面的一部分,而我想得到的是整个页面。
 楼主| 发表于 2013-4-8 10:00:48 | 显示全部楼层
yumianyang 发表于 2013-4-7 19:56
嗯,老大,您的解耦思想我明白了。我参照您原帖内容的意思,模块的使用方法之一:在CI的view层加载,成为 ...

你如果想得到整个页面,就不要请求Module的控制器呀。
实际上请求 Module 的控制器不是为了得到他的 view,而是要做某些操作,比如保存这部分的信息等等,大多数是用在AJAX情形下,你可以根据具体业务来思考一下。
有想法咱们可以继续探讨,呵呵
发表于 2013-4-8 10:09:38 | 显示全部楼层
Hex 发表于 2013-4-8 10:00
你如果想得到整个页面,就不要请求Module的控制器呀。
实际上请求 Module 的控制器不是为了得到他的 view ...

嗯,老大,我现在就尝试用jquery来获取Module页面。感谢Hex老大。
发表于 2013-4-9 00:14:09 | 显示全部楼层
为什么不能把模块load进来后,想怎么调模块里的方法就怎么调呢。
比如 $this->load->module('module_name/controller');
$this->controller->action()
发表于 2013-4-16 16:07:36 | 显示全部楼层
使用第三方类库  
$this->load->library('roowei_CRUD');
这样的写法  在
module 中报错  看了下代码 $this->load->library找不到 类包文件夹
然后使用  autoload 自动加载 类库
print_r($this->roowei_CRUD);  依然报错
Message: Undefined property: User_Login_module:roowei_CRUD
想请问下   在 module中如何调用 第三方类库
 楼主| 发表于 2013-4-18 13:26:03 | 显示全部楼层
anxinhuang 发表于 2013-4-9 00:14
为什么不能把模块load进来后,想怎么调模块里的方法就怎么调呢。
比如 $this->load->module('module_name/c ...

module 不是类库,不是用来调用的。
你这个需求做成类库更合适。或者做成模型。

module 我认为最大的用处是 widget 的作用。
 楼主| 发表于 2013-4-18 13:26:37 | 显示全部楼层
guanzhao130 发表于 2013-4-16 16:07
使用第三方类库  
$this->load->library('roowei_CRUD');
这样的写法  在

这个类库的命名不规范,必须大写开头,其他字母小写。

本版积分规则