thinkphp save() 跟新失败

一、失败案例

$data = I();
$rs = $this->typeModel->data($data)->save();
二、正确案例
正确一
  $rs=$this->typeModel->field('id,name,sort')->data($data)->save();
正确二:
// $rs=$this->typeModel->where('id='.$data['id'])->field('name,sort')->data($data)->save();
正确三:
// $rs=M('CityCategory')->where('id='.$data['id'])->field('name,sort')->data($data)->save();


  //注意:
//1.如果新数据与原数据相同则跟新失败
//2.不加field 限制会导致修改失败
//3.需要在field中写主键id和要改的字段, 或where条件中写主键id。
三、原因分析
从前台接收到的值 $data 中全部字段 id pid name path sort,都有值,但是有些新数据和老数据相同。
当新数据和老数据中有某些字段数据相同是需要用field来确定要求改的数据。估计field中写了,即便是相同也会更新。



原文地址:https://www.cnblogs.com/hao-1234-1234/p/7064365.html