1. CI でコントローラーを拡張する
場合によっては、ログインや権限の確認など、CI でコントローラーに対して統合された操作を実行する必要があります。これは、CI コントローラーを拡張することで実現できます。
CI コントローラーを拡張するには、application/core フォルダーに CI_Controller クラスから継承した MY_Controller クラスを作成し、このクラスに必要なロジックを実装するだけです。
上記の文に関しては、2 つの点を説明する必要があります:
1. なぜ application/core フォルダーにあるのか: 基本クラス CI_Controller は system/core フォルダーにあり、それに対応する必要があるためです。システム。
2. 拡張コントローラーのプレフィックスが MY_ なのはなぜですか? このプレフィックスは application/config/config.php で定義されています:
<span>$config</span>['subclass_prefix'] = 'MY_';
この 2 つの場所を一致させるだけで済みます。 。
2. モデル
サンプル application/models/user_model.php:
<?<span>php </span><span>/*</span><span>* * User_model </span><span>*/</span><span>class</span> User_model <span>extends</span><span> CI_Model{ </span><span>//</span><span>return all users</span><span>public</span><span>function</span><span> getAll() { </span><span>$res</span> = <span>$this</span> -> db -> get('test'<span>); </span><span>return</span><span>$res</span> -><span> result(); } }</span>
注:
1. ファイル名はすべて小文字です
2.オブジェクトのモデル属性で super を使用できます
4. 他のクラス名との競合を防ぐために、接尾辞として _model を使用することをお勧めします
使用例:
<span>public</span><span>function</span><span> index() { </span><span>//</span><span>load model</span><span>$this</span> -> load -> model('User_model'<span>); </span><span>$usermodel</span> = <span>$this</span> -> User_model -><span> getAll(); </span><span>//</span><span>别名</span><span>$this</span> -> load -> model('User_model', 'user'<span>); </span><span>$usermodel</span> = <span>$this</span> -> user -><span> getAll(); </span><span>var_dump</span>(<span>$usermodel</span><span>); }</span>
モデルは主にプロジェクト構造を標準化するために使用されます。
上記は、CodeIgniter の学習ノート 3: CI のコントローラーとモデルの拡張についての内容を紹介しており、PHP チュートリアルに興味のある友人の参考になれば幸いです。