前言
在写tp5接口的时候,发现model里面的参数查询出来之后,怎么改都不生效,也是自己不熟悉钻牛角尖了。
车祸现场
例如下面的代码使用model处理预处理
// SPU
public function getSpuAttr($value, $data)
{
$list = GoodsSpu::where('goods_id',$data['id'])->field('id,name,item')->select();
return $list;
}
然后我需要对查询出来的值进行二次修改
// 查询SPU
$goods['spu'] = $goods->spu;
$goods['spu'][0]['gram'] = 12.5;
结果接口返回的还是未修改的指。
原因:改的是value的值,其实改成功了,但是获取的时根本没返回value,而是又查了一遍,做一下调整就可以了
public function getSpuAttr($value, $data)
{
if(!$value){
$value = GoodsSpu::where('goods_id',$data['id'])->field('id,name,item')->select();
}
return $value;
}
低级错误,打自己,记录一下。