有時需要對CI中的控制器作統一操作,如進行登錄和權限驗證,這時就可以通過擴展CI控制器來實現。
擴展CI控制器只需要在application/core文件夾中建一個繼承自CI_Controller類的MY_Controller類即可,然後在這個類中實現自己需要的邏輯。
關於上面這句話,有兩點需要解釋一下:
1、為什麼要在application/core文件夾中:是因為基類CI_Controller是在system/core文件夾中,這裡需要跟system中對應。
2、為什麼擴展的控制器前綴是MY_,可否換成其他的:這個前綴是在application/config/config.php中定義的:
$config['subclass_prefix'] = 'MY_';
只需要這兩處對應上就可以了。
示例application/models/user_model.php:
<?php
/**
* User_model
*/
class User_model extends CI_Model{
//return all users
public function getAll() {
$res = $this -> db -> get('test');
return $res -> result();
}
}
注意點:
1、文件名全小寫
2、類名首字母大寫
3、模型中可以使用超級對象中的屬性
4、建議用_model作後綴,防止跟其他類名沖突
使用示例:
public function index() {
//load model
$this -> load -> model('User_model');
$usermodel = $this -> User_model -> getAll();
//別名
$this -> load -> model('User_model', 'user');
$usermodel = $this -> user -> getAll();
var_dump($usermodel);
}
模型主要用於規范項目結構。