4

C#/.NET MVC 3/4 から来た私は、CodeIgniter のモデルの実装にあまり慣れていません。

ドキュメントには、モデルがコントローラーメソッド内にロードされていることが示されていますが、私はほとんどすべてのメソッドでモデルを使用しており、モデルはコンストラクターを介してメソッド全体で使用されるデータをプロパティに保存しています。

私が見落としているコントローラーコンストラクターでモデルをインスタンス化しない理由はありますか?

4

2 に答える 2

7

次の方法でもモデルをロードできます。つまり、モデルが任意のフォルダーにある場合、次のコードを使用してコントローラーにモデルをロードできます。

$this->load->model('modelFolder/' . $this->controller . '_model');

たとえば。modelFolder: " "という名前のフォルダにモデルがある場合は、次のようにします。

 class demoController extends CI_Controller {

        var $controller = "user";    

        /* Local Constructor Will Be Overriding The One In The Parent Controller Class So We Need To Manually Call It. */

        public function __construct() {
            parent::__construct();        
                $this->load->model('modelFolder/' . $this->controller . '_model');
                $this->load->model('common_model');         
              }
    }

それがあなたを助けることを願っています...

于 2012-12-27T06:03:38.920 に答える
5

コントローラーを起動するたびにモデルをロードしない理由はありません。すべてのコントローラーの構成の自動ロードに配置することもできます。

常にロードしない唯一の理由は、多くの操作でモデルが必要ない場合です。そうすれば、メモリと時間を少し節約できます。

于 2012-10-18T22:49:28.037 に答える