有多属性商品,字段attr值如:
[{
"attr_list": [{
"attr_id": 5,
"attr_name": "L"
}],
"num": 0,
"price": 80,
"no": "9527",
"pic": ""
}, {
"attr_list": [{
"attr_id": 6,
"attr_name": "XL"
}],
"num": 0,
"price": 80,
"no": "9528",
"pic": ""
}, {
"attr_list": [{
"attr_id": 7,
"attr_name": "XXL"
}],
"num": 0,
"price": 80,
"no": "9529",
"pic": ""
}]
统计其总数量:
public function getNum($id = null) { $goods = null; if (!$id) { $goods = $this; } else { $goods = static::findOne($id); if (!$goods) { return 0; } } if (!$goods->attr) { return 0; } $num = 0; $attr_rows = json_decode($goods->attr, true); foreach ($attr_rows as $attr_row) { $num += intval($attr_row['num']); } return $num; }