PHP CI 框架简单使用

Posted 木楉。

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP CI 框架简单使用相关的知识,希望对你有一定的参考价值。

  我们简单认识一下CI框架的MVC。示例代码如下

//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->load->model(\'Home_model\'); 的加载名和模型类文件名一致都是Home_model。

  2,出现错误Message: Undefined property: Home::$load

  解决方法:出现上述问题是因为我们定义的控制器文件名(类名)使用了CI里的关键字导致命名冲突,解决方法有两个,第一种修改控制器文件名和类名(此方法相对比较麻烦,我们推荐第二种方法) ,第二种在控制器种添加一个构造函数,写法如下

    public function __construct(){
        parent::__construct();
    }

 

以上是关于PHP CI 框架简单使用的主要内容,如果未能解决你的问题,请参考以下文章

ngnix 配置CI框架 与 CI的简单使用

CI框架 -- CLI执行php代码

详细说明php的4中开源框架(TP,CI,Laravel,Yii)

详细说明php的4中开源框架(TP,CI,Laravel,Yii)

linux crontab定时任务调用CI框架PHP代码

php的CI框架,如何使用session