吞观暇赁录潜遣硷滑汹嘲驶镜
不添加更新条件是添加操作:
<?php namespace app\index\controller; use app\index\model\Staff; class Index { public function index() { $staff=new Staff(); $data=['name'=>'岳不群','age'=>80]; $staff->save($data); dump($staff->getData()); } }
执行:
将id=18的韦小宝的名字改为岳不群
<?php namespace app\index\controller; use app\index\model\Staff; class Index { public function index() { $staff=new Staff(); $data=[ 'id'=>18, 'name'=>'岳不群', 'age'=>80 ]; $staff->save($data); dump($staff->getData()); } }
执行报错,因为系统并不能识别出当前是更新操作:
显式指明当前是更新操作
<?php namespace app\index\controller; use app\index\model\Staff; class Index { public function index() { $staff=new Staff(); $data=[ 'id'=>18, 'name'=>'岳不群', 'age'=>80 ]; $staff->isUpdate(true)->save($data); dump($staff->getData()); } }
执行:
save()传入第二个条件将id=18的岳不群改为天山童姥
<?php namespace app\index\controller; use app\index\model\Staff; class Index { public function index() { $staff=new Staff(); $data=[ 'name'=>'天山童姥', 'age'=>80 ]; $where=['id'=>18]; $staff->save($data,$where); dump($staff->getData()); } }
执行:
updateAll()更新多条数据
将id=20,23,28的员工信息更新
<?php namespace app\index\controller; use app\index\model\Staff; class Index { public function index() { $staff=new Staff(); $data=[ ['id'=>20,'name'=>"吴三桂2号"], ['id'=>23,'name'=>"林平之2号"], ['id'=>28,'name'=>"岳不群2号"], ]; $staff->isUpdate()->saveAll($data); dump($staff); } }
执行:
update()静态调用更新数据
将id=23的林平之2号改为韦一笑
<?php namespace app\index\controller; use app\index\model\Staff; class Index { public function index() { //update(更新数据,更新条件,允许更新的字段) $data=['name'=>'韦一笑','age'=>59,'salary'=>5600];//更新数据 $where=['id'=>23];//更新条件 $fields=['name','age'];//允许更新的字段 //执行更新操作 $result=Staff::update($data,$where,$fields); dump($result->getData()); } }
执行:
可以看到只有name,age字段更新,这是因为只允许更新这两个字段
允许对salary进行修改
<?php namespace app\index\controller; use app\index\model\Staff; class Index { public function index() { //update(更新数据,更新条件,允许更新的字段) $data=['name'=>'韦一笑','age'=>59,'salary'=>5600];//更新数据 $where=['id'=>23];//更新条件 $fields=['name','age','salary'];//允许更新的字段 //执行更新操作 $result=Staff::update($data,$where,$fields); dump($result->getData()); } }
执行:
使用闭包,当条件很复杂时会很有用
<?php namespace app\index\controller; use app\index\model\Staff; class Index { public function index() { //update(更新数据,更新条件,允许更新的字段) $data=['name'=>'韦一笑','age'=>59,'salary'=>5600];//更新数据 $where=function($query){ $query->where('id=23'); }; $fields=['name','age','salary'];//允许更新的字段 //执行更新操作 $result=Staff::update($data,$where,$fields); dump($result->getData()); } }
执行:
闭包传入外部变量
使用外部变量将id=18的天山童姥的年龄改为59
<?php namespace app\index\controller; use app\index\model\Staff; class Index { public function index() { //使用外部变量将id=18的天山童姥的年龄改为50 $id=18; //update(更新数据,更新条件,允许更新的字段) $data=['age'=>59];//更新数据 $where=function($query) use($id){ $query->where('id','=',$id); }; $fields=['age'];//允许更新的字段 //执行更新操作 $result=Staff::update($data,$where,$fields); dump($result->getData()); } }
执行:
屋畔卢芭馁埂俺失蚊醛活判短