0

私は 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 ビューには、load_connections 関数で配列として渡された $data['tabs'] を表示するための div といくつかの php コードが含まれています。

問題は、次のようなエラーが表示されることです。

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 wiki ( https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc/wiki/Home ) で提供されているすべての指示に明確に従い、 必要に応じてすべてをセットアップしました。/application/config の下にある私の database.php は既に構成されています。routes.php も、デフォルトのコントローラーが main.php を指すように構成されています。

何を見逃したのか、うまくいかないのに間違ったことをしたのだろうか。

コードイグナイターのバージョン: 2.1.3
MX バージョン: 5.4
4

1 に答える 1

1

モジュールを呼び出しているので、MX_Controllerとの接続を拡張してください:: run()。modules :: run()を使用してコントローラーを呼び出す場合は常に、CI_ControllerではなくMX_Controllerを使用してコントローラーを拡張します。


2番目のエラーは、最初のエラーが原因で発生します。

最初のエラーは、group_modelを開くことができないために発生する可能性があります。

これを試して

$this->load->model('group_model');
于 2012-10-11T14:58:32.410 に答える