咱們簡單認識一下CI框架的MVC。示例代碼以下php
//CI控制器文件Home.php <?php defined('BASEPATH') OR exit('No direct script access allowed'); //爲了防止用戶直接經過文件路徑來訪問控制器,能夠有效的防止跨站攻擊 class Home extends CI_Controller{ //繼承CI控制類,必須存在的 public function __construct(){ parent::__construct(); $this->load->model('Home_model'); //加載Model模型類 } public function index(){ echo 'Home頁面'; $this->load->View('home/index'); //渲染home下的index視圖頁面,View能夠小寫 }
//CI模型類文件Hone_model.php <?php class Home_model extends CI_Model { function __construct() { parent::__construct(); $this->load->database(); // 加載數據庫 } }
頁面效果數據庫
碰到的問題解決:框架
1,在Linux部署訪問CI時出現錯誤 Unable to locate the model you have specified:*_model 時函數
解決方法:出現上述問題是沒有找到指定的模型類,主要緣由是由於在window環境下代碼不區分大小寫,因此默認model類文件名我小寫,但文件中類名必需要爲大寫的,當咱們將項目加載移植到Linux環境下時,Linux環境區分大小寫,因此致使類文件沒能找到,出現該問題,咱們要修改模型類文件名和控制器中的加載名保持一致,要麼全小寫要麼首字母大寫,其他字母全小寫。模型類中的類名要保證是首字母大寫,其他小寫的格式。this
例如上例就保證了$this->load->model('Home_model'); 的加載名和模型類文件名一致都是Home_model。spa
2,出現錯誤Message: Undefined property: Home::$loadcode
解決方法:出現上述問題是由於咱們定義的控制器文件名(類名)使用了CI裏的關鍵字致使命名衝突,解決方法有兩個,第一種修改控制器文件名和類名(此方法相對比較麻煩,咱們推薦第二種方法) ,第二種在控制器種添加一個構造函數,寫法以下blog
public function __construct(){ parent::__construct(); }