一、数据模型作用
相同功能代码不用重复写多次
二、创建方式
在模块下建立model文件夹,php文件,文件名为数据库表名,其中类为数据库表名,继承Model类,模型层即为此表
namespace appdemomodel; use thinkModel; class Ceshi extends Model{ }
三、控制器调用,查询
namespace appdemocontroller; //调用类继承 use thinkController; //调用模型 use appdemomodelCeshi; class Test extends Controller{ public function test(){ //实例化模型 $p = new Ceshi; //get id为1的数据,转为数组 dump($p->get(1)->toArray()); //类调用一条 $data = Ceshi::get(['pin'=>'zhangsan']); dump($data->toArray()); //类调用多条 $data = Ceshi::all(['pin'=>'zhangsan']); foreach($data as $k => $v){ dump($v->toArray()); } } }
//find方法
//$data = $p->where('pin','zhangsan')->find();
四、增加数据
namespace appdemocontroller; //调用类继承 use thinkController; //调用模型 use appdemomodelCeshi; class Test extends Controller{ public function test(){ //实例化模型 $p = new Ceshi; //增加一条数据 //方法一:赋值,保存 $p->pin = 'yonghu1'; $p->name = '用户1'; $p->save(); //方法二:批量赋值 $p->data([ 'pin'=>'yonghu2', 'name'=>'用户2' ]); $p->save(); //只允许某些字段写入 $p->data([ 'pin'=>'yonghu3', 'name'=>'用户3', 'pwd'=>'123' ]); $p->allowField(['pin','name'])->save(); //过滤不是该表中有的字段, allowField(true) //增加多条数据 $list = [ ['pin'=>'yonghu3','name'=>'用户3'], ['pin'=>'yonghu3','name'=>'用户3'] ]; $p->saveAll($list); } }
助手函数
model
区别仅在于实例化那里更改为如下
$p = model('Ceshi')
五、更新
//更新一条 //实例化模型 $p = new Ceshi; $p->save([ 'pin'=>'yonghu4', 'name'=>'用户4' ],['id'=>10]); //更新多条 $list 添加多条那里,每一行写个id
六、删除
静态方法:Ceshi::destroy([1,2,3])(括号内为主键的值)
条件删除:Ceshi::destroy(['name'=>'1'])
七、模型层查找字段改变显示值