1

私が構築しているフォーラムのCodeIgniterには4つのモデルがあります。

forum_model
category_model
user_model
subject_model

フォーラムモデル内のカテゴリ、ユーザー、およびサブジェクトモデルにアクセスしたい(つまり、ユーザー/カテゴリ/サブジェクトごとにスレッドを参照する)が、個々の機能に対して独立している必要があります(つまり、ユーザー/サブジェクト/カテゴリを追加する)

より多くの独立した関数があり、基本的に私が疑問に思っていたのは、「マスター」フォーラムモデルを作成するのは悪い習慣であるか(そしてモデルを作成するための最良の方法は何であるか)、またはコントローラーでリンクを行うだけでよいかどうかでした?

私は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');
    }
}

次に、変数変数を使用してメソッド内の他のモデルにアクセスする可能性があります$this->$model->method()

4

1 に答える 1

3

2.1.0では、モデルのスコープで定義されていないプロパティ(つまり、モデル参照、ライブラリなど)は、魔法のようにCIスーパーオブジェクトにアクセスします。

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

したがって、フォーラムモデルにメンバー変数がない限り、これは機能するはず$category $userです。$subject

ただし、通常、MVCでは、モデルがお互いを知らないようにすることをお勧めします。フォーラムモデルをコントローラーやライブラリのように機能させないように注意してください(そうでない場合は、コントローラーまたはライブラリである必要があります)。

于 2012-04-09T15:06:11.683 に答える