• ci的控制器视图模型


    控制器代码如下:

    <?php
    /**
     * 1. 文件和控制器名首字母必须大小
     * 2. index()方法,总是在第二段为空时被调用
     * 3. routes.php中定义默认控制器$route['default_controller'] = 'blog';
     * 4. 有子目录控制器时,第一段代表目录,或者使用查询字符串d
     * 5. 如果方法名和类名相同,又没有__construct,则这个方法名相当于__construct,
     * 6. 使用保留的方法名时,会覆盖原来的方法
     */
    class Blog extends CI_Controller
    {
        public function index()
        {
            echo 'Hello World!';
        }
        public function comments()
        {
            echo 'Look at this!';
        }
        public function shoes($sandals=NULL, $id=NULL)
        {
            echo $sandals.'<BR>';
            echo $id;
        }
        // 方法重映射,方法过滤,重写方法规则
        // public function _remap($method, $params = array())
        // {
        //     $method = 'process_'.$method;
        //     if (method_exists($this, $method))
        //     {
        //         return call_user_func_array(array($this, $method), $params);
        //     }
        //     show_404();
        // }
        // 输出处理,先写入缓存和设置http头后才执行此方法
        public function _output($output)
        {
            echo 'JABIN======'.$output.'jljklj';  // 先输出$output
            if($this->output->cache_expiration > 0)
            {
                $this->output->_write_cache($output);
            }
        }
        // 私有方法用private或者方法前加下划线, 只能内部访问
        private function _utility()
        {
            echo '4444';
        }
        // 构造函数,因为会覆盖父类__construct,所以需要执行一次父类的__construct
        public function __construct()
        {
            parent::__construct();
        }
        // 
    }

     视图代码如下:

    Blog.php控制器======
    <?php
    /**
     * 1. view加载的.php文件后缀可省略
     * 2. $data为对象时,对象中的变量会转为数组
    * 3. 控制器调用视图方式:$this->load->view('view_name'),多个视图自动合并
    */ class Blog extends CI_Controller { public function index() { $data['todo_list'] = array('Clean House', 'Call Mom', 'Run Errands'); $data['title'] = 'YOUR TITLE'; $data['heading'] = 'MY REAL HEADING'; $string = $this->load->view('blog/blogview', $data, TRUE); // 第三个参数设置结果返回字符串,默认为FALSE echo $string; } } blogview.php视图====== <html> <head> <title><?php echo $title; ?></title> </head> <body> <h1><?php echo $heading; ?></h1> <h3>Todo List</h3> <ul> <?php foreach ($todo_list as $tl): ?> <li><?php echo $tl; ?></li> <?php endforeach; ?> </ul> </body> </html>

     模型代码:

    <?php
    /**
     * 1. 文件名和类名一致,且首字母大写
     * 2. 控制器调用模型方式:$this->load->model('model_name', 'other_name'); // 第二个参数为别名
     * 3. 控制器使用模型方法:$this->model_name->method();
     * 4. 模型自动化加载,全局使用:application/config/autoload.php中添加到autoload数组中
     * 5. 链接数据库:手动:$this->load->database();自动1:自动化加载$autoload['libraries'] = array('database');自动2:$this->load->model('model_name', '', TRUE);等等
    * 6. 加载数据库后,直接根据表名操作表,并不是一个模型对应数据库表
    */ class Blog_model extends CI_model { public $title; public $content; public $date; public function __construct() { parent::__construct(); $this->load->database(); } public function get_last_ten_entries() { $query = $this->db->get('entries', 10); return $query->result(); } public function insert_entry() { $this->title = $_POST['title']; $this->content = $_POST['content']; $this->time = time(); $this->db->insert('entries', $this); } public function update_entry() { $this->title = $_POST['title']; $this->content = $_POST['content']; $this->date = time(); $this->db->update('entries', $this, array('id'=>$_POST['id'])); } }
  • 相关阅读:
    报表
    重构改善既有代码设计--重构手法02:Inline Method (内联函数)& 03: Inline Temp(内联临时变量)
    重构改善既有代码设计--重构手法01:Extract Method (提炼函数)
    httpclient 学习
    JAVA中反射机制六(java.lang.reflect包)
    JAVA中反射机制五(JavaBean的内省与BeanUtils库)
    JAVA中反射机制四
    JAVA中反射机制三
    JAVA中反射机制二
    JAVA中反射机制一
  • 原文地址:https://www.cnblogs.com/maoriaty/p/9060463.html
Copyright © 2020-2023  润新知