AttributeValue.php 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <?php
  2. namespace app\common\model;
  3. use think\Model;
  4. /**
  5. * 商品属性
  6. * Class AttributeValue
  7. * @package addons\shop\model
  8. */
  9. class AttributeValue extends Model
  10. {
  11. // 表名
  12. protected $name = 'shop_attribute_value';
  13. // 自动写入时间戳字段
  14. protected $autoWriteTimestamp = 'int';
  15. // 定义时间戳字段名
  16. protected $createTime = 'createtime';
  17. protected $updateTime = 'updatetime';
  18. protected $deleteTime = false;
  19. // 追加属性
  20. protected $append = [];
  21. /**
  22. * 获取商品属性
  23. * @param $attribute_ids
  24. * @return array|false|\PDOStatement|string|\think\Collection
  25. */
  26. public static function getAttributeList($attribute_ids)
  27. {
  28. if (!$attribute_ids) {
  29. return [];
  30. }
  31. $list = self::with([
  32. 'AttributeValue' => function ($query) use ($attribute_ids) {
  33. $query->field('id,attribute_id,name')->where('id', 'in', $attribute_ids);
  34. },
  35. 'Attribute'
  36. ])
  37. ->field('MIN(`id`) AS `id`, `attribute_id`')
  38. ->where('id', 'in', $attribute_ids)
  39. ->group('attribute_id')
  40. ->select();
  41. return $list;
  42. }
  43. public function AttributeValue()
  44. {
  45. return $this->hasMany('AttributeValue', 'attribute_id', 'attribute_id');
  46. }
  47. public function Attribute()
  48. {
  49. return $this->hasOne('Attribute', 'id', 'attribute_id', [], 'LEFT')->bind('name');
  50. }
  51. }