CI(3)

CI框架模型的介绍
1:什么是模型?
 1)模型就是一个对数据库操作的类
 2)一个模型一般都是针对一张表的
 3)类当中的方法都是针对功能的具体需求来做的,所以准确的说一个模型应该是针对一个模块的。
2:模型的存放目录
\application\models
3:创建一个模型其实就是创建一个类文件,但是这个类必须集成CI的模型核心类CI_Model,同时重载父类的构造方法
eg: class Model_test extends CI_Model{  //继承核心类 CI_Model
function __construct(){
parent::__construct();    //重载父类的构造方法
}
}
CI中提供了一个非常强大的CI数据库类(\system\database\DB_active_rec.php)可以实现对数据库的操作
在模型中加载这个类就可以使用其中的方法了
$this->db->方法名;

4:模型中对数据库的操作步骤
1) 配置数据库
在 application\config\database.php中配置(第51行开始配置hostname,username,password,database等信息)
2)如何创建文件,对一张数据表进行最基本的CURD操作
在application/model目录中建立自己的model文件,在才开始学习的时候最好养成一个好习惯,比如对用户操作的模型最好起名为usermodel.php,对商品表操作的模型起名为goodsmodel.php等
现在我们以test为例,建立文件testmodel.php
然后在testmodel.php文件中建立test类
class Testmodel extends CI_Model{  类名首字母大写 并且继承CI的model类  CI_Model
function __construct(){
parent::__construct();  //重写构造方法
$this->load->database();   //加载数据库  数据库名在前面已经配置好
}
function test_insert($data){
$this->db->insert("table_name",$data);   
}
//insert第一个参数为要操作的表名,$data为需要传入的数据
$data=array(
"键名1" => "值1",
"键名2" => "值2",
………………………………
)
function test_del($id){
$this->db->where("id",$id);  //where的第一个参数为主键名 后面为控制器调用的时候传过来的值
$this->db->delete("table_name"); 
}
function test_update($id,$data){
$this->db->where("id",$id);  //$id为 传过来的主键值  $data的规则和insert的一样
$this->db->update("table_name",$data)
}
function test_get($id=null){
if($id){      //id存在的情况下是指定某个id查询,id不存在的时候查询全部数据(暂时只是指定id查询,我们会在后面继续阐述多条件查询,连表查询以及分页等功能)
$this->db->where("id",$id);
}
$this->db->get("*");  //参数为字段名
$query = $this->db->get("table_name");
$obj = $query->result();
return $obj;   //返回的数据类型为对象
}
}
3)如何在控制器中调用我们建立好的model的方法。
class Test extends CI_Controller{
function add(){
$this->load->model("testmodel");  //model中的参数为对应的model名,即$this->load->model("模型名称");
$data = array(   //data的规则在model的test_insert中已经讲过
"field1"  => "value1",  
"field2"  => "value2",
……………………
);
$this->testmodel->test_insert($data);//即 $this->model的名称->model对应的方法
}
function update($id){
$this->load->model("testmodel");
$data = array(
"name" => "update",
"type" => "update",
);
$this->testmodel->test_update($id,$data);
}
function del($id){
$this->load->model("testmodel");
$this->testmodel->test_delete($id);
}
function get($id=null){
$this->load->model("testmodel");
$result = $this->testmodel->test_get($id);
}
//其实   $this->load->model("testmodel");可以写在构造方法__construct中
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值