diff --git a/app/admin/controller/v1/System.php b/app/admin/controller/v1/System.php index 5dabf6a3..d53350ce 100644 --- a/app/admin/controller/v1/System.php +++ b/app/admin/controller/v1/System.php @@ -8,6 +8,7 @@ use app\admin\model\v1\ArticleModel; use app\admin\model\v1\ProductCategoryModel; use app\admin\model\v1\ProductModel; use think\facade\Db; +use think\facade\Route; class System { @@ -224,15 +225,28 @@ class System { if ('custom' == $link_to) return []; - $data = []; - $url = parse_url($link, PHP_URL_QUERY); - if (empty($url)) return []; - - parse_str($url, $params); + $data = []; + $params = []; + $url = parse_url($link, PHP_URL_QUERY); + if (empty($url)) { + $parts = explode('/', trim($link, '/')); + $params['id'] = (int)str_replace('.html', '', end($parts)); + } else { + parse_str($url, $params); + } + + if (empty($params['id'])) return []; + switch ($link_to) { + case 'article_category': + $data = ArticleCategoryModel::field(['id', 'name'])->bypk($params['id'])->find(); + break; case 'article': $data = ArticleModel::field(['id', 'title' => 'name'])->bypk($params['id'])->find(); break; + case 'product_category': + $data = ProductCategoryModel::field(['id', 'name'])->bypk($params['id'])->find(); + break; case 'product': $data = ProductModel::field(['id', 'name'])->bypk($params['id'])->find(); break;