save(['weigh' => $row['id']]); }); } public function setFlagAttr($value, $data) { return is_array($value) ? implode(',', $value) : $value; } public function goods(){ return $this->hasMany(Goods::class)->where('status',1); } /** * 读取分类类型 * @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,$with=[]) { $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')->with($with)->select())->toArray(); foreach ($list as $k=>$v){ if(!empty($v['goods'])){ foreach ($v['goods'] as $ko=>$goods){ $list[$k]['goods'][$ko]['sku'] = GoodsSku::where('goods_id',$goods['id'])->field('id,name')->select(); } } } return $list; } public static function mall($with=[]){ return self::getCategoryArray('mall','normal',$with); } }