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();
        }
  • 相关阅读:
    MongoDB查询修改操作语句命令大全
    SpringBoot读取war包jar包Resource资源文件解决办法
    linux lsof命令详解
    taskset
    POI导出excel,本地测试没问题,linux测试无法导出
    js中文乱码
    处理Account locked due to 217 failed logins的问题
    普通用户无法su到root用户
    gp数据库停止
    eclipse导入maven工程missing artifact(实际是存在的)错误解决
  • 原文地址:https://www.cnblogs.com/lovele-/p/9459416.html
Copyright © 2011-2022 走看看