Category.php 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. <?php
  2. namespace app\admin\model\service;
  3. use think\Model;
  4. class Category extends Model
  5. {
  6. // 表名
  7. protected $name = 'service_category';
  8. // 自动写入时间戳字段
  9. protected $autoWriteTimestamp = 'integer';
  10. // 定义时间戳字段名
  11. protected $createTime = 'createtime';
  12. protected $updateTime = 'updatetime';
  13. protected $deleteTime = false;
  14. // 追加属性
  15. protected $append = [
  16. 'flag_text',
  17. 'status_text',
  18. 'isshow_text'
  19. ];
  20. public function getIsShowList()
  21. {
  22. return ['0' => __('否'), '1' => __('是')];
  23. }
  24. public function getIsShowTextAttr($value, $data)
  25. {
  26. $value = $value ? $value : (isset($data['is_show']) ? $data['is_show'] : '');
  27. $list = $this->getIsShowList();
  28. return isset($list[$value]) ? $list[$value] : '';
  29. }
  30. protected static function init()
  31. {
  32. self::afterInsert(function ($row) {
  33. $pk = $row->getPk();
  34. $row->getQuery()->where($pk, $row[$pk])->update(['weigh' => $row[$pk]]);
  35. });
  36. }
  37. public function getFlagList()
  38. {
  39. return ['hot' => __('Hot'), 'new' => __('New'), 'recommend' => __('Recommend')];
  40. }
  41. public function getStatusList()
  42. {
  43. return ['normal' => __('Normal'), 'hidden' => __('Hidden')];
  44. }
  45. public function getFlagTextAttr($value, $data)
  46. {
  47. $value = $value ?: ($data['flag'] ?? '');
  48. $valueArr = explode(',', $value);
  49. $list = $this->getFlagList();
  50. return implode(',', array_intersect_key($list, array_flip($valueArr)));
  51. }
  52. public function getStatusTextAttr($value, $data)
  53. {
  54. $value = $value ? $value : (isset($data['status']) ? $data['status'] : '');
  55. $list = $this->getStatusList();
  56. return isset($list[$value]) ? $list[$value] : '';
  57. }
  58. protected function setFlagAttr($value)
  59. {
  60. return is_array($value) ? implode(',', $value) : $value;
  61. }
  62. /**
  63. * 获取分类列表
  64. * @param $ids
  65. * @return string
  66. */
  67. public function getCategoryList($ids)
  68. {
  69. if(!$ids)
  70. {
  71. return '';
  72. }
  73. $idArr = explode(',',$ids);
  74. $list = [];
  75. foreach ($idArr as $val)
  76. {
  77. $name = $this->where(['id'=>$val])->value('name');
  78. if($name)
  79. {
  80. $list[] = $name;
  81. }
  82. }
  83. return implode(',',$list);
  84. }
  85. }