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

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

    [复制链接]
 楼主| 发表于 2014-4-22 18:42:51 | 显示全部楼层
wuyichao36 发表于 2014-4-22 10:55
查看了吗?
在5.3 +的版本是有这个问题吧。。。

我看了一下,你的代码是怎么写的,贴全了,可能是你的使用有问题。

发表于 2014-4-23 10:29:16 | 显示全部楼层
本帖最后由 wuyichao36 于 2014-4-23 10:31 编辑
Hex 发表于 2014-4-22 18:42
我看了一下,你的代码是怎么写的,贴全了,可能是你的使用有问题。

role  文件夹下面 controllers 下面的 home_made.php

PHP复制代码
<?php  if (!defined('BASEPATH')) exit('No direct script access allowed');
class Role_Home_Made_module extends CI_Module {
 
        /**
         * 构造函数
         *
         * @return void
         * @author
         **/

        function __construct(){
                parent::__construct();
        }
 
        function index($id=1){
               
                $this->output->cache(1/30);
       
                $this->load->model('Main_data_model');
                $view['role_list'] = $this->Main_data_model->export($id);
                $view['role_group'] = $this->Main_data_model->directory($id);
 
                $this->load->view('view_test',$view);
        }
}
复制代码



role  文件夹下面 controllers 下面的 main_data_model.php

PHP复制代码
 
<?php  if (!defined('BASEPATH')) exit('No direct script access allowed');
 
class Role_Main_data_model extends CI_Model {
 
        function __construct(){
                parent::__construct();
        }
 
        function export($parentid){
               
                $this->db->from('admin_active');  
                $this->db->where('parent_id',$parentid);
                         
                $this->db->order_by('parent_id asc,orderid asc');
                $query = $this->db->get();
                         
                return $query->result_array();
        }
 
        function directory($parentid){
               
                $this->db->select('action_code');
                $this->db->from('admin_active');
                $this->db->where('id',$parentid);
                         
                $query = $this->db->get();
                         
                return $query->row_array();
        }
 
 
}
 
 
 
复制代码





role  文件夹下面 controllers 下面的 view_test.php


显示一些信息。。


调用:
<?php $this->load->module('role/home_made',6); ?>



关键我是在5.2下面是没问题啊。  就在 php 5.3 下有这个问题。。。



 楼主| 发表于 2014-4-23 11:37:59 | 显示全部楼层
wuyichao36 发表于 2014-4-23 10:29
role  文件夹下面 controllers 下面的 home_made.php
PHP复制代码
<?php $this->load->module('role/home_made',6); ?>
复制代码

这样传参是不支持的,请仔细看一下说明:

https://github.com/CodeIgniter/HMVC

$this->load->module('模块名/控制器/方法', array('参数1', '参数2', ...));

发表于 2014-5-1 01:08:27 | 显示全部楼层
楼主,你这个支持CI2.1.4吗
发表于 2014-6-11 18:55:27 | 显示全部楼层
有时间研究下
发表于 2014-6-28 08:20:57 | 显示全部楼层
给力 .... 够牛的
发表于 2014-7-31 18:42:30 | 显示全部楼层
213支持最新的220版本吗?
发表于 2014-8-31 22:53:14 | 显示全部楼层
这样的结构有什么特别的好处吗?感觉还是MVC比较清晰一点
发表于 2014-10-27 09:42:18 | 显示全部楼层

A PHP Error was encountered

Severity: Warning

Message: call_user_func_array() expects parameter 2 to be array, string given

Filename: core/MY_Loader.php

Line Number: 213

之前在php 5.2下面是正常的。PHP升级后在5.3.28下面出错

http://localhost/codeigniter/index.php/module/latest_articles/latest_articles
这样直接访问是可以的

<?php $this->load->module('latest_articles/latest_articles'); ?>
这样引用了就会出现上面的错误

请问是什么原因?
 楼主| 发表于 2014-10-27 10:36:55 | 显示全部楼层
dc769319 发表于 2014-8-31 22:53
这样的结构有什么特别的好处吗?感觉还是MVC比较清晰一点

设计这个的初衷是为了在视图中 include 一个独立的区域,这个区域有自己的 MVC 结构。
比如用户评论区,这个区域需要显示数据库信息,提交信息等,如果独立出来,在需要的地方只需要一句话就可以加入这个功能。

本版积分规则