ホームページ > バックエンド開発 > PHPチュートリアル > CodeIgniter の学習メモ 3: CI コントローラーとモデルの拡張

CodeIgniter の学習メモ 3: CI コントローラーとモデルの拡張

WBOY
リリース: 2016-08-08 09:22:49
オリジナル
886 人が閲覧しました

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 チュートリアルに興味のある友人の参考になれば幸いです。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート