首頁  >  文章  >  後端開發  >  CodeIgniter學習筆記三:擴展CI的控制器、模型

CodeIgniter學習筆記三:擴展CI的控制器、模型

WBOY
WBOY原創
2016-08-08 09:22:49856瀏覽

一、擴充CI中的控制器

有時需要對CI中的控制器作統一操作,如進行登入和權限驗證,這時就可以透過擴展CI控制器來實現。

擴充CI控制器只要在application/core資料夾中建立一個繼承自CI_Controller類別的MY_Controller類別即可,然後在這個類別中實作自己需要的邏輯。

關於上面這句話,有兩點要解釋一下:

1、為什麼要在application/core資料夾中:是因為基類CI_Controller是在system/core資料夾中,這裡需要跟system對應。

2、為什麼擴充的控制器前綴是MY_,可否換成其他的:這個前綴是在application/config/config.php中定義的:

<span>$config</span>['subclass_prefix'] = 'MY_';

只需要這兩處對應上就可以了。

二、模型

範例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、類名物件中的屬性

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學習筆記三:擴充CI的控制器、模型,包含了方面的內容,希望對PHP教學有興趣的朋友有幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn