where('cid', 1) ->where('delete_time', null) ->select() ->toArray(); $articles = []; $categoryData = []; // 提取分类名称和ID用于前端tab显示 foreach ($categories as $category) { $categoryData[] = [ 'id' => $category['id'], 'name' => $category['name'] ]; // 获取该分类下的文章 $articles = Db::name('yz_article') ->where('cate', $category['id']) ->where('delete_time', null) ->where('status', 2) ->order('id', 'desc') ->field('id, cate, title, image, author, publishdate, views') ->select() ->toArray(); } return json([ 'code' => 1, 'msg' => '获取成功', 'articles' => $articles, 'categories' => $categoryData ]); } /** * 获取技术文章列表 */ public function technicalArticleslist() { // 获取技术文章分类(顶级分类id为3的子分类) $categories = Db::name('yz_article_category') ->where('cid', 3) ->where('delete_time', null) ->select() ->toArray(); // 组装分类数据,方便后续查找 $categoryData = []; $categoryImageMap = []; foreach ($categories as $category) { $categoryData[] = [ 'id' => $category['id'], 'name' => $category['name'] ]; $categoryImageMap[$category['id']] = $category['image'] ?? ''; } // 获取所有技术分类下的文章 $technicalarticles = Db::name('yz_article') ->whereIn('cate', array_column($categories, 'id')) ->where('delete_time', null) ->where('status', 2) ->order('id', 'desc') ->field('id, cate, title, image, author, publishdate, views') ->select() ->toArray(); // 替换image为空的文章 foreach ($technicalarticles as &$article) { if (empty($article['image']) && !empty($categoryImageMap[$article['cate']])) { $article['image'] = $categoryImageMap[$article['cate']]; } } unset($article); return json([ 'code' => 1, 'msg' => '获取成功', 'articles' => $technicalarticles, 'categories' => $categoryData ]); } }