[codeigniter 四]、模型和辅助函数

1、模型。

(1)、什么是模型?
模型对于那些传统MVC方式的人来说是可选的。比如,我们之前讲的一些例子中就没有用到M层,那是由于我们暂时还没有涉及到与数据库的操作,一旦涉及到数据库操作,我们就要用M层了,因为模型(M)就是专门用来和数据库打交道的。

(2)、那怎么样创建一个模型呢?

其实模型就是一个PHP类,里面包含添加、删除、更新和统计数据等方法,我们来创建一个简单的看一下,代码如下:

class User_model extends CI_Model {  
                           
    function __construct()  
    {  
    parent::__construct();  
    }  
                           
    //执行获取数据操作  
    function get()  
    {  
   //代码省略……  
    }  
                           
    //执行添加数据操作  
    function insert()  
    {  
    //代码省略……  
    }  
                         
                           
    //执行更新数据操作  
    function update()  
    {  
    //代码省略……  
    }  
                         
                         
    //执行删除数据操作  
    function delete()  
    {  
    //代码省略……  
    }  
}

此时我们需要注意以下几点:
a、创建的模型类文件应该放在application/models/ 文件夹,文件名应该是模型类名的小写格式。例如上例当中的,文件名应该为user_model.php;
b、类名的首字母必须大写,其他字母小写;
c、确保你的类继承了基本模型类(CI_Model)。

那这样的模型文件建好了,该怎么用呢?

(3)、载入模型。
我们写好的模型是通过控制器来载入和引用的。载入模型在CI中有两种方式:

一种是手动载入,假如我们想载入上面那个模型类,那它可以很容易的在控制器中的方法中装载,就像这样:
$this->load->model('User_model');

以上通常都放在控制器的构造函数中进行装载,毕竟这样只需要手动装载一次就够了。

另一种是自动载入,找到并打开 application/config/autoload.php 文件,然后在自动装载数组中加入这个模型,只要设置$autoload['model'] = array();为:
$autoload['model'] = array('user_model');

载入完模型之后,我们就可以使用它了:
$this->User_model->add();  
$this->User_model->insert();

由于我们会涉及到数据库操作,因此首先要进行数据库的配置,打开 application/config/database.php 文件,设置连接数据库的一些参数值,如下:
$db['default']['hostname'] = 'localhost';  
$db['default']['username'] = '你的数据库主机名';  
$db['default']['password'] = '你的数据库密码';  
$db['default']['dbdriver'] = 'mysql';  
$db['default']['database'] = '你的数据库名';

上面只是设置了其中一部分的参数,想了解更多你可以浏览CI中国的中文手册, http://codeigniter.org.cn/user_guide/database/configuration.html  

然后我们开始建一个数据表,这里叫user表,表结构如下:
create table user (  
    id int(11) auto_increment primary key not null,  
    name varchar(30) not null default '',  
    nickname varchar(50) not null default '',  
    sex varchar(20) not null default '男',  
    age int(11) not null default 0  
);

我们插入一条数据,如下:
insert into user values(null,'Sulley007','冷不丁','男','24');  
insert into user values(null,'Sulley','先生','男','23');

接下来我们写一个用户模型,就起名为user_model.php,代码如下:

<?php  
     class User_model extends CI_Model {  
    //获取用户信息  
    public function get()  
    {  
        $data = '';  
        //SQL语句的select部分,这里查询user表的所有字段  
        $this->db->select("*");  
       //运行选择查询语句并且返回结果集给$data  
       $data = $this->db->get("user");  
       return $data;  
     }  
     }  
?>

紧接着写控制器,起名为user.php,代码如下:

<?php  
     class User extends CI_Controller{  
    //构造函数  
    function __construct()  
    {  
       parent::__construct();  
       //载入用户模型  
       $this->load->model("User_model");  
    }  
    //显示用户信息列表  
    public function index()  
    {  
        //调用用户模型中的get方法,将结果集返回给$query  
        $query = $this->User_model->get();  
        //将结果集作为关联数组返回  
        $data['userList'] = $query->result_array();  
        $this->load->view('user_index',$data);
     }  
     }  
?>

最后,我们开始写视图,代码如下:

<html>  
    <head>  
        <meta http-equiv="content-type" content="text/html; charset=utf-8">  
        <title>一个带模型的简单示例</title>  
    </head>  
    <body>  
        <div>  
            <table width="500px">  
                <tr>  
                    <th>ID号</th>  
                    <th>姓名</th>  
                    <th>外号</th>  
                    <th>性别</th>  
                    <th>年龄</th>   
                </tr>  
                <?php foreach ($userList as $item): ?>  
                <tr style="text-align:center;">  
                    <td><?php echo $item['id'] ;?></td>  
                    <td><?php echo $item['name'] ;?></td>  
                    <td><?php echo $item['nickname'] ;?></td>  
                    <td><?php echo $item['sex'] ;?></td>  
                    <td><?php echo $item['age'] ;?></td>  
                </tr>  
                <?php endforeach; ?>  
            </table>  
        </div>  
    </body>  
</html>

好,现了我们打开浏览器,输入 http://localhost/ci_demo/index.php/user/index 即可访问到用户列表啦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值