我是CI + MX的新手,我尝试过Modules :: run();风格,但我似乎无法让它发挥作用。
这是我的目录结构:
/application
-/modules
--/main
---/controllers
----main.php
---/models
---/views
--/connections
---/controllers
----connections.php
---/models
----/group_model.php
---/views
----connection_view.php
main.php控制器:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Main extends MX_Controller {
function __construct(){
parent::__construct();
$this->load->helper('url');
}
function index(){
echo modules::run('connections/load_connections');
}
}
?>
connections.php控制器:
<?php
class Connections extends CI_Controller{
function __construct(){
parent::__construct();
$this->load->helper('url');
$this->load->model('connections/group_model');
}
function load_connections(){
$user_id = 2;
$data['tabs'] = $this->group_model->get_groups($user_id);
$this->load->view('connection_view', $data);
}
}
?>
group_model.php模型:
class Group_model extends CI_Model{
function __construct(){
parent::__construct();
}
/**
* Get all groups in db
**/
function get_groups($user_id){
$this->db->select('g.group_name');
$this->db->from('groups AS g');
$this->db->join('members AS m', 'g.group_id = m.group_id');
$this->db->where('m.user_id', $user_id);
return $this->db->get()->result_array();
}
}
我的connection_view.php视图包含一个div和一些php代码,用于显示在load_connections函数中作为数组传递的$ data ['tabs']。
问题是,我收到的错误是:
A PHP Error was encountered
Severity: Notice
Message: Undefined property: Connections::$group_model
Filename: controllers/connections.php
Line Number: 14
和
Fatal error: Call to a member function get_groups() on a non-object in C:\xampp\htdocs\hmvc\application\modules\connections\controllers\connections.php on line 14
我已经明确遵循了MX维基上https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc/wiki/Home提供的所有说明 并根据需要设置一切。 我已经配置了/ application / config下的database.php。 routes.php还配置为将默认控制器指向main.php
我想知道我错过了什么或做错了我无法让它发挥作用。
Codeigniter version: 2.1.3 MX version: 5.4
答案 0 :(得分:1)
几乎错过了它,因为你正在调用modules :: run(),所以扩展了与MX_Controller的连接。每当你想用module :: run()调用一个控制器时,你用MX_Controller而不是CI_Controller扩展它
您的第二个错误是由于您的第一个错误引起的。
您的第一个错误很可能是因为它无法打开group_model。
试试这个
$this->load->model('group_model');