1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- <?php
- namespace app\admin\model\shop;
- use think\Model;
- class SpecValue extends Model
- {
- // 表名
- protected $name = 'shop_spec_value';
- // 自动写入时间戳字段
- protected $autoWriteTimestamp = 'int';
- // 定义时间戳字段名
- protected $createTime = 'createtime';
- protected $updateTime = 'updatetime';
- protected $deleteTime = false;
- // 追加属性
- protected $append = [];
- //添加属性
- public static function push($values, $spec)
- {
- $data = [];
- foreach ($values as $item) {
- // 兼容旧格式(字符串)和新格式(对象)
- $value = is_array($item) ? $item['name'] : $item;
- $image = is_array($item) ? ($item['image'] ?? '') : '';
- $desc = is_array($item) ? ($item['description'] ?? '') : '';
-
- $specValue = self::where('value', $value)->where('spec_id', $spec->id)->find();
- if (!$specValue) {
- $specValue = new self();
- $specValue->save([
- 'value' => $value,
- 'spec_id' => $spec->id,
- 'image' => $image,
- 'desc' => $desc
- ]);
- } else {
- // 更新图片和描述(如果有新数据)
- $updateData = [];
- if ($image && $specValue->image !== $image) {
- $updateData['image'] = $image;
- }
- if ($desc && $specValue->desc !== $desc) {
- $updateData['desc'] = $desc;
- }
- if (!empty($updateData)) {
- $specValue->save($updateData);
- }
- }
-
- $data[] = [
- 'spec_id' => $spec->id,
- 'spec_name' => $spec->name,
- 'spec_value_id' => $specValue->id,
- 'spec_value_value' => $specValue->value
- ];
- }
- return $data;
- }
- }
|