From be26f2d75b4514bbc6c3caaf94c57d17513636ac Mon Sep 17 00:00:00 2001 From: jsasg <735273025@qq.com> Date: Fri, 27 Mar 2026 17:43:41 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BA=A7=E5=93=81=E6=8E=A8=E8=8D=90?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E5=8F=8A=E5=AF=BC=E5=87=BA=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../v1/ProductCategoryRecommend.php | 21 ++++++++++++------- .../v1/ProductCategoryRecommendModel.php | 6 +++--- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/app/admin/controller/v1/ProductCategoryRecommend.php b/app/admin/controller/v1/ProductCategoryRecommend.php index bd62f86f..7d2d42ae 100644 --- a/app/admin/controller/v1/ProductCategoryRecommend.php +++ b/app/admin/controller/v1/ProductCategoryRecommend.php @@ -20,15 +20,17 @@ class ProductCategoryRecommend $image_host = $server['REQUEST_SCHEME'] . "://" . $server['SERVER_NAME'] . '/'; $param = request()->get([ 'keywords', + 'category_name', 'page/d' => 1, 'size/d' => 10 ]); // 查询数据 - $data = ProductCategoryRecommendModel::with(['category' => function($query) { - $query->field(['id', 'name']); + $data = ProductCategoryRecommendModel::withJoin(['category' => function($query) use ($param) { + if (!empty($param['category_name'])) { + $query->where('category.name', 'like', '%' . $param['category_name'] . '%'); + } }]) - ->withoutField(['language_id', 'updated_at', 'deleted_at']) ->withSearch(['keywords'], ['keywords' => $param['keywords']??null]) ->language(request()->lang_id) ->order(['sort' => 'asc', 'id' => 'desc']) @@ -37,7 +39,7 @@ class ProductCategoryRecommend 'page' => $param['page'], ]) ->bindAttr('category', ['category_name' => 'name']) - ->hidden(['category']) + ->hidden(['category', 'language_id', 'updated_at', 'deleted_at']) ?->each(function($item) use($image_host) { // 拼接完整图片URL if (!empty($item['image'])) { @@ -78,15 +80,18 @@ class ProductCategoryRecommend $param = request()->get(['keywords']); // 查询数据 - return ProductCategoryRecommendModel::with(['category' => function($query) { - $query->field(['id', 'name']); + return ProductCategoryRecommendModel::withJoin(['category' => function($query) use ($param) { + if (!empty($param['category_name'])) { + $query->where('category.name', 'like', '%' . $param['category_name'] . '%'); + } }]) - ->withoutField(['language_id', 'updated_at', 'deleted_at']) ->withSearch(['keywords'], ['keywords' => $param['keywords']??null]) ->language(request()->lang_id) ->order(['sort' => 'asc', 'id' => 'desc']) ->select() - ->each(function($item) use($image_host) { + ->bindAttr('category', ['category_name' => 'name']) + ->hidden(['category', 'language_id', 'updated_at', 'deleted_at']) + ?->each(function($item) use($image_host) { // 拼接完整图片URL if (!empty($item['image'])) { $item['image'] = url_join($image_host, $item['image']); diff --git a/app/admin/model/v1/ProductCategoryRecommendModel.php b/app/admin/model/v1/ProductCategoryRecommendModel.php index 507681b0..317bb968 100644 --- a/app/admin/model/v1/ProductCategoryRecommendModel.php +++ b/app/admin/model/v1/ProductCategoryRecommendModel.php @@ -32,7 +32,7 @@ class ProductCategoryRecommendModel extends ProductCategoryRecommendBaseModel // 所属语言范围查询 public function scopeLanguage($query, $language) { - $query->where('language_id', '=', $language); + $query->where($this->getTable() . '.language_id', '=', $language); } // 关键词搜索 @@ -41,7 +41,7 @@ class ProductCategoryRecommendModel extends ProductCategoryRecommendBaseModel if (is_null($keywords)) { return; } - $query->where('title', 'like', "%{$keywords}%") - ->whereOr('desc', 'like', "%{$keywords}%"); + $query->where($this->getTable() . '.title', 'like', "%{$keywords}%") + ->whereOr($this->getTable() . '.desc', 'like', "%{$keywords}%"); } }