2012-04-09 9 views
1

モデル内のアクセスモデル:のCodeIgniter 2.1.0:私は私が構築していますフォーラムのためにCodeIgniterの中に4つのモデルを持っている

forum_model 
category_model 
user_model 
subject_model 

私はフォーラムのモデル内のカテゴリ、ユーザーおよび対象のモデル(つまりにアクセスしたいです:ユーザ/カテゴリ/サブジェクト別にスレッドをブラウズする)しかし、個々の機能に対して独立している必要があります(ユーザ/サブジェクト/カテゴリを追加してください)

Theresはもっと独立した機能を持っており、 「マスター」フォーラムモデルを作成する(そして、モデルを作成する最良の方法は何でしょうか)、あるいはコントローラーでリンクするだけですか?

私はこのようなforum_modelの設定について考えていた:

class Forum_model extends CI_Model { 
    function __construct() { 
     parent::construct(); 
     $this->load->model('Category_model', 'category'); 
     $this->load->model('User_model', 'user'); 
     $this->load->model('Subject_model', 'subject'); 
    } 
} 

はその後、おそらく、2.1.0では変数変数$this->$model->method()

答えて

3

を用いる方法内の任意のプロパティを他のモデルにアクセスする(つまり、モデルの参照、ライブラリなど)は、CIスーパーオブジェクトに魔法のようにアクセスします。

<?php 
function __get($key) 
{ 
    return get_instance()->$key; 
} 

あなたのフォーラムモデルに$category$userまたは$subjectのメンバー変数がない場合、これはうまくいくはずです。

しかし、通常、MVCではお互いを知り合わないモデルの方が良い方法です。あなたのフォーラムモデルをコントローラやライブラリのように機能させないように注意してください(そうでなければ、コントローラやライブラリでなければなりません!)。

+0

私は同じことを考えていて、コントローラーでモデル関数を使用し、モデル関数の結果を必要な場合に 'forum_model'に渡すというソリューションを考え出しました! –

関連する問題