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;
- }
- /**
- * 读取分类类型
- * @return array
- */
- 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 isset($list[$value]) ? $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)));
- }
- /**
- * 读取分类列表
- * @param string $type 指定类型
- * @param string $status 指定状态
- * @return array
- */
- 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;
- }
- }
|