app/common/repositories/store/parameter/ParameterValueRepository.php 文件 54 号的循环修改为如下代码:
foreach ($data as &$datum) {
if(isset($datum['parameter_id']) && !empty($datum['parameter_id'])) { // 如果有parameter_id,表示是参数模板中的属性,需要先清除参数模板中的属性
$this->dao->clear($datum['parameter_id'],'parameter_id');
} else if(isset($productId) && !empty($productId)) { // 如果没有parameter_id,且有productId,表示是某商品新增的属性,需要先清除商品中的属性
$this->dao->clear($productId,'product_id');
}
// 创建参数属性
foreach ($datum['values'] as &$v) {
$createData = [
'name' => $datum['name'],
'value' => $v['value'],
'mer_id' => $merId,
//如果是存在$datum['parameter_id'],则表示这个属性是模板中定义的 不需要和商品绑定
'product_id' => isset($datum['parameter_id']) ? 0 : $productId,
'parameter_id' => isset($datum['parameter_id']) ? $datum['parameter_id'] : 0,
];
$create = $this->dao->create($createData);
$v['parameter_value_id'] = $create->parameter_value_id;
if ($productId){
$toProduct[] = [
'product_id' => $productId,
'parameter_value_id' => $v['parameter_value_id']
];
}
}
}