zoukankan      html  css  js  c++  java
  • 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();
        }
  • 相关阅读:
    美的觉醒
    jquery中ajax使用error调试错误的方法
    VC项目开发之单文档多视图实现-非分割窗口[转]
    MFC常见问题解惑[转]
    计算机视觉、机器学习相关领域论文和源代码大集合[转]
    C++成员变量、构造函数的初始化顺序 [转]
    VC中常用的宏[转]
    (VC)解决绘图时闪烁问题的一点经验[转]
    C++的辅助工具介绍 [转]
    [GUI]界面开发类库-Ribbon风格 [转]
  • 原文地址:https://www.cnblogs.com/lovele-/p/9459416.html
Copyright © 2011-2022 走看看