有時需要對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); }
模型主要用於規范項目結構。