一、擴充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教學有興趣的朋友有幫助。