From 1e5bb8fddf502e22077584323422bb8a1813ab22 Mon Sep 17 00:00:00 2001 From: thinkphp Date: Fri, 29 Jul 2016 11:20:27 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E8=BF=9B=E5=9F=9F=E5=90=8D=E7=BB=91?= =?UTF-8?q?=E5=AE=9A=E5=88=B0=E5=88=86=E7=BB=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- library/think/Route.php | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/library/think/Route.php b/library/think/Route.php index 5aea3e06..779e40fb 100644 --- a/library/think/Route.php +++ b/library/think/Route.php @@ -684,13 +684,13 @@ class Route if (0 === strpos($result, '\\')) { // 绑定到命名空间 例如 \app\index\behavior - self::$bind = ['type' => 'namespace', 'namespace' => $result]; + self::$bind = ['type' => 'namespace', 'namespace' => $result, 'domain' => true]; } elseif (0 === strpos($result, '@')) { // 绑定到类 例如 @app\index\controller\User - self::$bind = ['type' => 'class', 'class' => substr($result, 1)]; + self::$bind = ['type' => 'class', 'class' => substr($result, 1), 'domain' => true]; } elseif (0 === strpos($result, '[')) { // 绑定到分组 例如 [user] - self::$bind = ['type' => 'group', 'group' => substr($result, 1, -1)]; + self::$bind = ['type' => 'group', 'group' => substr($result, 1, -1), 'domain' => true]; } else { // 绑定到模块/控制器 例如 index/user self::$bind = ['type' => 'module', 'module' => $result, 'domain' => true]; @@ -792,7 +792,7 @@ class Route } else { $str = $key; } - if (0 !== strpos($url, $str)) { + if (is_string($str) && 0 !== strpos($url, $str)) { continue; } @@ -885,7 +885,12 @@ class Route // 绑定到路由分组 $key = self::$bind['group']; if (array_key_exists($key, $rules)) { - $rules = [$key => $rules[self::$bind['group']]]; + $item = $rules[self::$bind['group']]; + if (!empty(self::$bind['domain']) && true === $item) { + $rules = [self::$rules['*'][$key]]; + } else { + $rules = [$key => $item]; + } } } }