Spec.php 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. <?php
  2. namespace app\admin\model\shop;
  3. use think\Model;
  4. use addons\shop\model\SpecValue;
  5. use app\admin\model\shop\SpecValue as ShopSpecValue;
  6. class Spec extends Model
  7. {
  8. // 表名
  9. protected $name = 'shop_spec';
  10. // 自动写入时间戳字段
  11. protected $autoWriteTimestamp = 'int';
  12. // 定义时间戳字段名
  13. protected $createTime = 'createtime';
  14. protected $updateTime = 'updatetime';
  15. protected $deleteTime = false;
  16. // 追加属性
  17. protected $append = [];
  18. //新增属性和属性值
  19. public static function push($spec)
  20. {
  21. $spec_list = [];
  22. foreach ($spec as $key => $item) {
  23. $row = self::where('name', $item['name'])->find();
  24. if (!$row) {
  25. $row = new self();
  26. $specData = ['name' => $item['name']];
  27. // 支持规格类型
  28. if (isset($item['type'])) {
  29. $specData['type'] = $item['type'] === 'custom' ? 2 : 1;
  30. }
  31. $row->save($specData);
  32. }
  33. $spec_data = ShopSpecValue::push($item['value'], $row);
  34. $spec_list = array_merge($spec_list, $spec_data);
  35. }
  36. return $spec_list;
  37. }
  38. }