123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- <?php
- namespace app\common\model;
- use think\Model;
- class Category extends Model
- {
-
- protected $autoWriteTimestamp = 'int';
-
- protected $createTime = 'createtime';
- protected $updateTime = 'updatetime';
-
- protected $append = [
- 'type_text',
- 'flag_text',
- ];
- protected static function init()
- {
- self::afterInsert(function ($row) {
- $row->save(['weigh' => $row['id']]);
- });
- }
- public function setFlagAttr($value, $data)
- {
- return is_array($value) ? implode(',', $value) : $value;
- }
-
- public static function getTypeList()
- {
- $typeList = config('site.categorytype');
- foreach ($typeList as $k => &$v) {
- $v = __($v);
- }
- return $typeList;
- }
- public function getTypeTextAttr($value, $data)
- {
- $value = $value ? $value : $data['type'];
- $list = $this->getTypeList();
- return $list[$value] ?? '';
- }
- public function getFlagList()
- {
- return ['hot' => __('Hot'), 'index' => __('Index'), 'recommend' => __('Recommend')];
- }
- public function getFlagTextAttr($value, $data)
- {
- $value = $value ? $value : $data['flag'];
- $valueArr = explode(',', $value);
- $list = $this->getFlagList();
- return implode(',', array_intersect_key($list, array_flip($valueArr)));
- }
-
- public static function getCategoryArray($type = null, $status = null)
- {
- $list = collection(self::where(function ($query) use ($type, $status) {
- if (!is_null($type)) {
- $query->where('type', '=', $type);
- }
- if (!is_null($status)) {
- $query->where('status', '=', $status);
- }
- })->order('weigh', 'desc')->select())->toArray();
- return $list;
- }
- }
|