CodeIgniter模型

1 模型的概念:模型是专门用来和数据库打交道的PHP类。

2 剖析模型
1)存放位置:application/models/文件夹中,也可以在这个文件夹中建立子文件夹

2)基本的模型类示例:

类的文件名application/models/user_model.php


<?php
<!-- lang: php -->
class User_model extends CI_Model{
<!-- lang: php -->
    function __construct(){
<!-- lang: php -->
        parent::__construct();
<!-- lang: php -->
    }
<!-- lang: php -->
}
<!-- lang: php -->
?>

3 在控制器中载入模型

语法:his->load->model('Model_name);

示例:application/models/blog/queries.php


$this->load->model('blog/queries');

模型一旦被载入,可以通过下面的方法使用它


$this->load->model('Model_name);
<!-- lang: php -->
$this->Model_name->function();

在默认的情况下模型名称就直接被引入作为对象名,就如上面所示,但是也可以起个更好记的对象名例如:


$this->load->model('Model_name','fubar');
<!-- lang: php -->
$this->fubar->function();

4 自动载入模型
如果需要一个在整个项目中都起作用的特定模型,可以让CodeIgniter在初始化时自动装载它

方法:在applicaion/config/autoload.php文件中在自动装载数组中添加上这个模型。

注意:当加载模型越多消耗内存就会越大。自动加载模型是要牺牲内存消耗换取的,尽量不要自动加载不必要贯穿全站的模型

5 一个模型示例


class Blogmodel extends CI_Model{
<!-- lang: php -->
    var $title = '';
<!-- lang: php -->
    var $content = '';
<!-- lang: php -->
    var $date = '';
<!-- lang: php -->

<!-- lang: php -->
    function __construct(){
<!-- lang: php -->
        parent::__construct();
<!-- lang: php -->
    }
<!-- lang: php -->

<!-- lang: php -->
    function get_last_ten_entries(){
<!-- lang: php -->
        $query = $this->ldb->get('entires',10);
<!-- lang: php -->
        return $query->result();
<!-- lang: php -->
    }
<!-- lang: php -->

<!-- lang: php -->
    function insert_entry(){
<!-- lang: php -->
      $this->title = $_POST['title'];
<!-- lang: php -->
      $this->content = $_POST['content'];
<!-- lang: php -->
      $this->date = time();
<!-- lang: php -->

<!-- lang: php -->
       $this->db->insert('entries',$this);
<!-- lang: php -->
    }
<!-- lang: php -->

<!-- lang: php -->
    function update_entry(){
<!-- lang: php -->
        $this->title = $_POST['title'];
<!-- lang: php -->
        $this->content = $_POST['content'];
<!-- lang: php -->
        $this->date = time();
<!-- lang: php -->

<!-- lang: php -->
        $this->db->update('entries',$this,array('id' =>$_POST['id'])); 
<!-- lang: php -->
    }
<!-- lang: php -->
}

注意:直接使用了$_POST,这不太好,平时应该使用输入类:$this->input->post('title');

你可能感兴趣的:(CodeIgniter,Model)