diff --git a/app/admin/controller/v1/BannerItem.php b/app/admin/controller/v1/BannerItem.php index ed4dfa76..672a9327 100644 --- a/app/admin/controller/v1/BannerItem.php +++ b/app/admin/controller/v1/BannerItem.php @@ -3,6 +3,7 @@ declare (strict_types = 1); namespace app\admin\controller\v1; +use app\admin\model\v1\ArticleModel; use app\admin\model\v1\SysBannerItemModel; use app\admin\validate\v1\SysBannerItemValidate; @@ -64,6 +65,9 @@ class BannerItem return error('横幅不存在'); } + // 组装用于前台回显的链接数据 + $banner_item['link_echo_data'] = System::getEchoDataBySystemPageUrl($banner_item['link_to'], $banner_item['link']); + return success('获取成功', $banner_item); } diff --git a/app/admin/controller/v1/NavigationItem.php b/app/admin/controller/v1/NavigationItem.php index 2d1fa823..28103adb 100644 --- a/app/admin/controller/v1/NavigationItem.php +++ b/app/admin/controller/v1/NavigationItem.php @@ -69,6 +69,9 @@ class NavigationItem return error('导航不存在'); } + // 组装用于前台回显的链接数据 + $nav['link_echo_data'] = System::getEchoDataBySystemPageUrl($nav['link_to'], $nav['link']); + return success('获取成功', $nav); } diff --git a/app/admin/controller/v1/System.php b/app/admin/controller/v1/System.php index 8aeee49d..8108e03b 100644 --- a/app/admin/controller/v1/System.php +++ b/app/admin/controller/v1/System.php @@ -219,4 +219,29 @@ class System return $data->toArray(); } + + // 根据系统页面url获取回显数据项 + static public function getEchoDataBySystemPageUrl($link_to, $link) + { + if ('custom' == $link_to) return []; + + $data = []; + parse_str(parse_url($link, PHP_URL_QUERY), $params); + switch ($link_to) { + case 'article': + $data = ArticleModel::field(['id', 'title' => 'name'])->bypk($params['id'])->find(); + break; + case 'product': + $data = ProductModel::field(['id', 'name'])->bypk($params['id'])->find(); + break; + default: + return []; + break; + } + return [ + 'id' => $data['id'], + 'name' => $data['name'], + 'link' => $link + ]; + } } \ No newline at end of file