From c9809e702923eefff6d861510517b320ae40090b Mon Sep 17 00:00:00 2001 From: Anyon Date: Mon, 26 Oct 2020 18:26:13 +0800 Subject: [PATCH] Update SystemService.php --- .../zoujingli/think-library/src/service/SystemService.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/vendor/zoujingli/think-library/src/service/SystemService.php b/vendor/zoujingli/think-library/src/service/SystemService.php index 2f2e88ebf..268ecc125 100644 --- a/vendor/zoujingli/think-library/src/service/SystemService.php +++ b/vendor/zoujingli/think-library/src/service/SystemService.php @@ -19,6 +19,7 @@ namespace think\admin\service; use think\admin\Service; use think\db\Query; +use think\helper\Str; /** * 系统参数管理服务 @@ -142,9 +143,10 @@ class SystemService extends Service */ public function sysuri(string $url = '', array $vars = [], $suffix = true, $domain = false): string { - $location = $this->app->route->buildUrl($url, $vars)->suffix($suffix)->domain($domain)->build(); - [$d1, $d2, $d3] = [$this->app->config->get('app.default_app'), $this->app->config->get('route.default_controller'), $this->app->config->get('route.default_action')]; - return preg_replace('|/\.html$|', '', preg_replace(["|^/{$d1}/{$d2}/{$d3}(\.html)?$|i", "|/{$d2}/{$d3}(\.html)?$|i", "|/{$d3}(\.html)?$|i"], ['$1', '$1', '$1'], $location)); + $d2 = Str::snake($this->app->config->get('route.default_controller')); + [$d1, $d3] = [$this->app->config->get('app.default_app'), $this->app->config->get('route.default_action')]; + $pattern = ["#^/{$d1}/{$d2}/{$d3}(.html)?#i", "#^(/.*?)/{$d2}/{$d3}(^\w|\?|\.|$)#i", "#^(/.*?/.*?)/{$d3}(^\w|\?|\.|$)#i"]; + return preg_replace($pattern, ['', '$1$2', '$1$2'], $this->app->route->buildUrl($url, $vars)->suffix($suffix)->domain($domain)->build()); } /**