From 64bea5c8d2a1b7d3bd56b50c8b792fc80f80929f Mon Sep 17 00:00:00 2001 From: thinkphp Date: Tue, 23 Aug 2016 18:11:28 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3Url=E7=B1=BB=E4=B8=80?= =?UTF-8?q?=E5=A4=84Bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- library/think/Url.php | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/library/think/Url.php b/library/think/Url.php index 4e980adb..e5a9ec32 100644 --- a/library/think/Url.php +++ b/library/think/Url.php @@ -78,9 +78,9 @@ class Url } if (!empty($rule) && $match = self::getRuleUrl($rule, $vars)) { // 匹配路由命名标识 快速生成 - $url = $match; - if (!empty($rule[2])) { - $domain = $rule[2]; + $url = $match[0]; + if (!empty($match[1])) { + $domain = $match[1]; } } elseif (!empty($rule) && isset($name)) { throw new \InvalidArgumentException('route name not exists:' . $name); @@ -235,14 +235,15 @@ class Url public static function getRuleUrl($rule, &$vars = []) { foreach ($rule as $item) { - list($url, $pattern) = $item; + list($url, $pattern, $domain) = $item; foreach ($pattern as $key => $val) { if (isset($vars[$key])) { $url = str_replace(['[:' . $key . ']', '<' . $key . '?>', ':' . $key . '', '<' . $key . '>'], $vars[$key], $url); unset($vars[$key]); - return $url; + return [$url, $domain]; } elseif (2 == $val) { - return str_replace(['/[:' . $key . ']', '[:' . $key . ']', '<' . $key . '?>'], '', $url); + $url = str_replace(['/[:' . $key . ']', '[:' . $key . ']', '<' . $key . '?>'], '', $url); + return [$url, $domain]; } } }