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}%"); } }