3.2.3 - 严重 - 未处理
在Model里面使用了table方法切换表名,无法save,其他增删查都OK //无法save
$data['clicknum'] = 800;
$res = $this->table('shop_goods')->where('id=1')->save($data);$res结果直接是false;找了下原因,是因为$data里面的数据被过滤掉了。
调用table方法后去select会执行字段查询语句:SHOW COLUMNS FROM `shop_goods`;
但是调用table方法后使用save却没有去查询这个shop_goods表的字段,所以Model类里面的 $this->fields 还是上一个表的字段,两表之间字段不匹配,就将数据过滤掉了。

临时解决方案:
在模型里面用M('goods')函数实例化shop_goods表(就是不用table切换表名了);
$data['clicknum'] = 800;
$goods = M('goods');
$res = $goods->where('id=1')->save($data); 或者在save方法前面调用field()方法,将需要更新的字段指定一下; $data['clicknum'] = 800;
$res = $this->table('shop_goods')->field('clicknum')->where('id=1')->save($data); 再或者在Model基类里面,处理数据之前,将该表的字段查出来赋值给$this->fields;(不推荐)