count() > 0; } /** * 检测数据下 是否有子内容 * * @param array $ids * @return bool */ public static function hasContentByIds(array $ids): bool { return Archives::whereIn('category_id', $ids)->count() > 0; } /** * 获取列表 * * @return ArchivesCategory[]|array|Collection * @throws DataNotFoundException * @throws DbException * @throws ModelNotFoundException */ public static function getList() { return self::field('id,pid,title,name,sort,path,true as open') ->order('sort', 'desc') ->order('id', 'asc') ->select(); } /** * 模型 * * @return HasOne */ public function model(): HasOne { return $this->hasOne(ArchivesModel::class, 'id', 'model_id')->bind(['model' => 'name']); } //--王兴龙 auth start -------------------------------------------------------------------------------------------------- //获取前台菜单 public static function getListForFrontMenu() { $items = self::withJoin(["model"]) ->order(['sort' =>'desc',"id"=>"asc"]) ->select() ->toArray(); return self::getCates($items); } //获取递归栏目 public static function getCates($cates, $parentId = 0) { $menus = []; foreach ($cates as $cate) { if ($cate['pid'] == $parentId) { $children = self::getCates($cates, $cate['id']); if (!empty($children)) { $cate['children'] = $children; } $menus[] = $cate; } } return $menus; } //当前分类的最高级分类Id public static function firstGradeById($id) { $res = 0; $item = self::getById($id); if ($item) { $res = $id; if ($item['pid'] > 0) { $items = self::select()->toArray(); $first = self::getFirstGrade($items, $item['pid']); if (!empty($first)) { $res = $first['id']; } } } return $res; } public static function getFirstGrade($items, $parentId) { $data = []; foreach ($items as $key => $item) { if ($item['id'] == $parentId) { if ($item['pid'] > 0) { unset($items[$key]); $parent = self::getFirstGrade($items, $item['pid']); if (!empty($parent)) { $data = $parent; } else { $data = $item; } } else { $data = $item; } } } return $data; } /** * 获取每个栏目文章封面大小 数组 * */ public static function getArchiveCoverSizeArr() { return json_encode(self::column(["id","archive_cover_size"],"id")); } /** * 获取每个栏目 设置路由 * */ public static function getRoute() { return self::column(["id","name","route"],"id"); } //--王兴龙 auth end -------------------------------------------------------------------------------------------------- }