1. tp 模型对象 查询数据
//一,获取一条数据 //1.传递闭包函数 /*$res = User::get(function($query){ $query->where('username','eq','user002') ->field('username,email'); });*/ //2. /*$res = User::where('id',2) ->field("id,username") ->find();*/ //二,获取多条数据 //3. /*$res = User::all("1,2,3"); //4. //$res = User::all(function($query){ $query ->where('id','<',5) ->field('id,email'); }); foreach($res as $val){ dump($val->toArray()); }*/ //5. /*$res = User::where('id','<',5) ->field('username,email') ->limit(2) ->order('id DESC') ->select(); foreach($res as $val){ dump($val->toArray()); }*/ //$res = $res->toArray(); //三,获取某个字段数据 //$res = User::where('id',10)->value('email'); //四,获取某一列字段数据 //$res = User;;column('email','username'); return $this->fetch();
二、 使用模型添加数据
//create()第二个参数,是允许插入的字段数组,(若设置为true,可以排除不能添加的字段) /*$res = User::create([ 'username' => 'user002', 'password' => md5('1234'), 'email' => '12345@email.com' ],true);*/ //使用userModel //返回值为保存的对象 /*$userModel = new User; $userMpdel->username = 'user021'; $userModel->email = '123456@email.com'; $userModel->save(); //或 //返回值为插入数据的行数 //allowField([字段1,字段2...]),允许插入的字段,,也可以设置true,过滤掉不需要的字段 //$userModel->allowField([字段1,字段2...])->save([ 'username' => 'user021', 'email' = '132456@email.com' ]); // */ //返回值为插入数据的对象数组 $userModel = new User; $res = $userModel->saveAll([ ['username'=>'user001'], ['username'=>'user002'], ['username'=>'user003'] ]); foreach($res as $val){ dump($val->toArray()); }
3. 使用模型更新数据
//update的参数中若存在主键,则更新主键为传递值的对象 //返回更新的对象 /*$res = User::update([ 'id' => 1, 'username' => 'user003' ]);*/ /*$res = User::update([ 'username' => 'user003' ],['id' => 1]);*/ //或 传递闭包函数 /*$res = User::update([ 'username' => 'user003' ],function($query){ $query->where('id','LT',2); });*/ //返回被更新的数据行数 /*$res = User::where('id','<',6) ->update([ 'username' => 'user003' ]);*/ //返回被更新的数据行数 /*$userModel = User::get(1); $userModel->username = '123'; $res = $userModel->save();*/ //save 传递第二参数,更新以第二个参数为条件的更新 //第二个参数 也可以设置为一个闭包函数 //返回值 为影响的行数 /*$userModel = new User; $res = $userModel->save([ 'email' => '123465@email.com' ],[ 'id' => 4 ]);*/ $userModel = new User; //返回值 为影响的行数 $res = $userModel -> saveAll([ 'id'=>1,'username'=>'user0002' ], [ 'id'=>2,'username'=>'user0003' ]); dump($res);
4.使用模型删除数据
//返回被删除的行数 //1.直接传主键值 //2.传递数组如 ['id'=>2] //3.传递闭包函数 /*$res = User::destroy(function($query){ $query->where('id','<',5); });*/ /*$userModel = User::get(2); $res = $userModel->delete();*/ $res = User::where('id','<',5) ->delete();
5.使用模型聚合操作
$res = User::count(); $res = User::where('id','>',10)->count(); $res = User::max('num'); $res = User::min('num'); $res = User::where('id','<',5)->max(num); $res = User::sum(num); $res = User::avg(num);
6. 模型获取器 --》 Model类中: get字段名Attr($val){}
$res = User::get(3); //获取经过模型获取器后的数据 dump($res->sex); $res->toArray(); //获取经过模型获取器后的数据 $res->getData();
7. 模型修改器 -》 Model类中: set字段名Attr($val){}
$auto 数据添加和更新都会进行操作 配合set字段名Attr($val){ return 操作; }
$insert 数据进行插入时进行操作 配合set字段名IndertAttr($val){ return 操作; }
$update 数据进行更新时发生操作 配合set字段名UpdateAttr($val){ return 操作; }
自动完成 -- 配合修改器使用
例如:
//先在model类内添加,需要自动完成字段数组 protected $auto = ['字段1','字段2']; public function set字段1Attr(){ return 处理字段1(); }
相关推荐
day07-面向对象 java
最新IE7漏洞0day的分析.php 最新IE7漏洞0day的分析.php
day08-面向对象.md
DAY01_面向对象.md
day05(CSS03-盒子模型)v1.0.pdf
day12-面向对象进阶语法.xmind
day01Java面向对象OOP(1).xmind
day06【类与对象、封装、构造方法】.pdf
很不错的学习资料,内容非常详细,一看就懂
day01-匿名对象 , 继承 , 抽象类.md
day06_01_面向对象思想的概述
day06_02_面向对象思想的举例
day16-面向对象综合练习(上).md
day003 面向对象1-类和对象.doc
7day_Project.rar 安卓代码
苍穹外卖day7作业-从购物车中减去商品
day09面向对象作业.md
加强课:day01-面向对象高级第一天.xmind