PHP CI 框架簡單使用(二)

  咱們簡單認識一下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();
    }
相關文章
相關標籤/搜索