思考:如果我们需要跟模型打交道,其底层是和数据库打交道.如何配置数据库信息?
数据库配置
定义模型
思考:
- 模型写在哪里?

- 模型的文件的名称如何命名?
需要定义模型的文件的名称,必须和表名一致.
例如我们数据表里面的名称有如下两张表
数据库里面的表:sh_goods 商品表
模型名称:GoodsModel.class.php(去除表前缀.Model.class.php(固定写法))
数据库里面的表:sh_goods_attribute 商品属性值表
模型名称:GoodsAttibuteModel.class.php(去除表前缀剩下的部分全部使用大驼峰的方式.Model.class.php(固定写法))
- 模型的里面内容如何编写?(继承、方法的定义)

- 控制器里面如何实例化模型?
效果:

效果:
- 控制器里面如何将模型获取数据赋值给视图

- 视图里面如何展示数据
实例化模型
方法四:
通过在控制器里面引入模型类文件,然后使用new进行实例化我们可以获取模型实例.
方法二:
我们可以在控制器里面通过系统提供的一个D函数,直接实例化模型,得到实例
主要是D函数M函数
模型的curd,acid
查询数据
如果我们需要在模型里面查询数据,可以使用系统模型提供的select方法获取表中所有的数据信息。(二维数组)
public function getDataAction(){$goodsModel =D("Goods");$goodData= $goodsModel->select();$count= $goodsModel->count();//获得表中总记录$this->assign('goodsData',$goodData);$this->display();}
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title></head><body><ul><?php foreach($goodsData as $k=>$v):?><li>序号<?php echo $v['goods_id'];?></li><li>名称<?php echo $v['goods_name'];?></li><hr></ul><?php endforeach ?><hr><volist name="goodsData" id="data">{$data:goods_id}:{$data.goods_name} <br></volist></body></html>
增加数据
系统逻辑,add 方法
public function addDataAction(){$goodsModel=D('Goods');$insertData = array('goods_name'=>'新的数据','goods_price'=>'1231.12','goods_number'=>1231,'goods_sn'=>uniqid(),);//参数是一个关联数组,并且数组的下标是表中的字段名称,并且主键ID可以省略$res=$goodsModel->add($insertData);//可以插入数据库if ($res>0){//成功,跳转到崭新页面//success 是基类的Cotroller中的方法$this->success('添加成功',U('getDdata'),10);}else{$this->error('添加失败',U('getDdata'),10);// 如果不指定第二个参数,就是往上一页跳转die('error');}}
成功插入数据后,返回的是主键ID,应该是跳转到展示页面
改数据
明白:
- 修改条件
- 修改数据
底层代码:public function updataAction(){$goodsModel = D('Goods');$goodsId=21;$updataData= array('goods_id'=>$goodsId,'goods_name'=>'new data','goods_price'=>2000,'goods_number'=>12312312,'goods_sn'=> uniqid(),);//返回值是收影响的参数$res = $goodsModel->save($updataData);dump($res);}
删除数据
public function delAction(){//主键删除$goodsId=21;$goodsModel=D('goods');$res = $goodsModel->delete($goodsId);dump($res);}
public function delAction(){//主键删除$goodsId=21;$ids="19,20";$goodsModel=D('goods');//受影响的行数$res = $goodsModel->delete($ids);dump($res);}

deltete根据主键之外的字段做删除public function delsAction(){//根据除开主键之外的字段做删除$options=array(// 'where'=>array('goods_name'=>'shou1'),// 'where'=>array('goods_price'=>12)'where'=>array(8,9,10));$goodsModel = D('Goods');$res = $goodsModel->delete($options);dump($res);}


