From 06b5d445f76d6b8aae9808528cdcb39bbd00c2fe Mon Sep 17 00:00:00 2001 From: jsasg <735273025@qq.com> Date: Tue, 24 Jun 2025 14:13:55 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=96=87=E7=AB=A0=E8=AF=A6=E6=83=85?= =?UTF-8?q?=E6=8E=A8=E8=8D=90=E6=96=87=E7=AB=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/index/controller/Article.php | 7 ++++++- app/index/model/ArticleCategoryModel.php | 11 +++++++++++ app/index/model/ArticleModel.php | 5 +++++ 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/app/index/controller/Article.php b/app/index/controller/Article.php index 8a78e6d8..d726782b 100644 --- a/app/index/controller/Article.php +++ b/app/index/controller/Article.php @@ -3,6 +3,7 @@ declare (strict_types = 1); namespace app\index\controller; +use app\admin\controller\v1\ArticleCategory; use app\index\model\ArticleCategoryModel; use app\index\model\ArticleLeaveMessageModel; use app\index\model\ArticleModel; @@ -115,7 +116,10 @@ class Article extends Common View::assign('comments', $comments); // 获取倒序或发布时间倒序3篇文章做为推荐文章 - $recommends = ArticleModel::field([ + $category_model = new ArticleCategoryModel; + $parent_id = $category_model->bypk($detail['category_id'])->value('pid'); + $categorys = $category_model->child($parent_id)->column('id'); + $recommends = ArticleModel::field([ 'id', 'title', 'desc', @@ -123,6 +127,7 @@ class Article extends Common ]) ->where('id', '<>', $id) ->language($this->lang_id) + ->category($categorys) ->order(['release_time' => 'desc', 'id' => 'desc']) ->limit(3) ->select(); diff --git a/app/index/model/ArticleCategoryModel.php b/app/index/model/ArticleCategoryModel.php index 3b9157fc..223ffcd4 100644 --- a/app/index/model/ArticleCategoryModel.php +++ b/app/index/model/ArticleCategoryModel.php @@ -46,6 +46,17 @@ class ArticleCategoryModel extends ArticleCategoryBaseModel $query->where('pid', '=', $parent); } + // 所属子分类范围查询 + public function scopeChild($query, $id, $merge_self = false) + { + $query->where(function($q) use($id, $merge_self) { + $q->where('pid', '=', $id); + if ($merge_self) { + $q->whereOr('id', '=', $id); + } + }); + } + // 是否显示状态范围查询 public function scopeIsShow($query, bool $is_show) { diff --git a/app/index/model/ArticleModel.php b/app/index/model/ArticleModel.php index 03b173da..fe1fbfb9 100644 --- a/app/index/model/ArticleModel.php +++ b/app/index/model/ArticleModel.php @@ -32,6 +32,11 @@ class ArticleModel extends ArticleBaseModel // 文章分类范围查询 public function scopeCategory($query, $category) { + if (is_null($category)) return; + if (is_array($category)) { + $query->where('category_id', 'in', $category); + return; + } $query->where('category_id', '=', $category); }