diff --git a/app/portal/service/ApiService.php b/app/portal/service/ApiService.php index 4e0f4b672a53f799fdeb6db13e25651c801c1496..410a9efc0bae4ebe2d454abbeb1471869c56f75d 100644 --- a/app/portal/service/ApiService.php +++ b/app/portal/service/ApiService.php @@ -419,11 +419,15 @@ class ApiService 'delete_time' => 0, ]; - return $portalCategoryModel + $temp = $portalCategoryModel ->where($where) ->where($paramWhere) - ->order($order) - ->select(); + ->order($order); + + if (!empty($param['ids'])) { + $temp->whereIn('id', $param['ids']); + } + return $temp->select(); } /** diff --git a/app/portal/taglib/Portal.php b/app/portal/taglib/Portal.php index d1a13b6abae2dae7066cf9f89d77e9344dd9db8a..1eabb85d42a0a84222e7a018fc68fccbba7e815d 100644 --- a/app/portal/taglib/Portal.php +++ b/app/portal/taglib/Portal.php @@ -22,7 +22,7 @@ class Portal extends TagLib 'articles' => ['attr' => 'field,where,limit,order,page,relation,returnVarName,pageVarName,categoryIds', 'close' => 1],//非必须属性item 'tagarticles' => ['attr' => 'field,where,limit,order,page,relation,returnVarName,pageVarName,tagId', 'close' => 1],//非必须属性item 'breadcrumb' => ['attr' => 'cid', 'close' => 1],//非必须属性self - 'categories' => ['attr' => 'where,order', 'close' => 1],//非必须属性item + 'categories' => ['attr' => 'ids,where,order', 'close' => 1],//非必须属性item 'subcategories' => ['attr' => 'categoryId', 'close' => 1],//非必须属性item 'allsubcategories' => ['attr' => 'categoryId', 'close' => 1],//非必须属性item ]; @@ -236,7 +236,11 @@ parse; { $item = empty($tag['item']) ? 'vo' : $tag['item'];//循环变量名 $order = empty($tag['order']) ? '' : $tag['order']; + $ids = empty($tag['ids']) ? '' : $tag['ids']; $returnVarName = 'portal_categories_data'; + if (strpos($ids, '$') === 0) { + $ids = $this->autoBuildVar($ids); + } $where = '""'; if (!empty($tag['where']) && strpos($tag['where'], '$') === 0) { $where = $tag['where']; @@ -247,6 +251,7 @@ parse; \${$returnVarName} = \app\portal\service\ApiService::categories([ 'where' => {$where}, 'order' => '{$order}', + 'ids' => {$ids} ]); ?>