非 MVC OOP 社内フレームワークからの CI を学んでいるので、まだ多くのことについて混乱しています。通常の OO プログラミング VS とは何かを常に理解しているわけではありません。コード点火方法を行ったもの。とにかく私は私の問題を説明しようとします:
CI_Controller を拡張する Admin という名前のコントローラーが 1 つあります。
クラスを作成しました(カスタムクラスの意味は、CIの一部ではなく作成したものだとしましょう)そのクラスをライブラリフォルダーに配置しました。そのクラスはCI_Controllerも拡張します(その拡張により、loadメソッドと他のCIメソッドを使用できました)。
Admin コントローラーから、カスタム クラス (私はイタリア人なので「ComponiPannello」という名前) を次のようにロードしています。
$parameters = array('baseUrl' => $this->baseUrl);
$this->load->library('ComponiPannello', $parameters);
すべてが完璧に機能し、「ComponiPannello」はうまく機能し、管理ビューに必要なものを返します。
そのクラスの直後にモデルをロードしたかったのは、管理ビューに詳細情報を渡す必要があるためです。これらの情報は DB に保存されています。これらの追加情報を取得する特定のモデルがあるため、いくつかの行を追加し、コードは次のようになります。
$parameters = array('baseUrl' => $this->baseUrl);
$this->load->library('ComponiPannello', $parameters);
$setup = $this->componipannello->return_data();
$this->data = array_merge($this->data, $setup);
$this->load->model('categories_model');
$this->data['categories'] = $this->categories_model->get_categories();
$this->data は、私が管理者のビューに渡すものです。
いくつかの詳細情報:
- 私が言ったように、管理コントローラーと私のカスタムクラス ComponiPannell の両方が CI_Controller を拡張します
ComponiPannello には、次のコンストラクタがあります。
function _ construct($params) { 親:: _construct(); $this->load->library('session'); $this->baseUrl = $params['baseUrl']; }
$this->load->model 部分を $this->load->library の前に移動すると、エラーは発生せず、すべてが機能し、正しいデータが返されますが、自分が何をしているのかを知りたいです。
そのままにしておくと、次のエラーが表示されます。
致命的なエラー: 行 ... 内の非オブジェクトでメンバー関数 get_categories() を呼び出します ...
お時間を割いていただき、ありがとうございます。
ルーク