咱们简单认识一下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(); }