二十二、ThinkPHP6_模型的数据更新

  1. 使用 find() 方法获取数据,然后通 save() 方法保存修改,返回布尔值
$user = UserModel::find(11);
$user->name='王一';
$user->save():
//或
$user = UserModel::where('name','李小小')->find();
$user->name='王一';
$user->save():
  1. save() 方法只会更新变化的数据,如果提交的修改数据没有变化,则不更新,而force() 可实现强制更新数据,即使数据一样。
$user->force()->save();
  1. 使用 Db::raw() 执行 SQL 函数的方式
$user->price = Db::raw('price+1');
  1. allowField() 方法,允许要更新的字段,其它字段就无法写入
//有个问题,使用了Db::raw() ,allowField() 不能限制住;
$user->name ='wang';
$user->price= Db::raw('price+1');
$user->allowField(['name','email'])->save();
  1. 通过 saveAll() 方法,可以批量修改数据,返回被修改的集合,saveAll() 只能通过主键 id 更新
$list=[
	['id'=>3,'name'=>'张1']//id 必须有
	['id'=>4,'name'=>'汪2']
];
$user->saveAll($list);
//方法1
UserModel::update(['id'=>3,'name'=>232432]);//必须有id
//方法2
UserModel::update(['name'=>23423],['id'=>4]);//参数2 是条件
//方法3
UserModel::update(['name'=>'wrw23'],['id'=>4],['name','code']);//参数3 限制更新字段

模型的新增和修改都是 save() 进行执持的,它采用了自动识别体系来完成,实例化模型后调用save()方法表示新增,查询数据后调用save() 表示修改,如果在save() 传入更新修改条件后也表示修改

你可能感兴趣的:(ThinkPHP)