改进Route类

This commit is contained in:
thinkphp
2016-05-20 21:44:40 +08:00
parent b289af3070
commit e6d8a22c3b

View File

@@ -468,16 +468,10 @@ class Route
if (!empty($val['routes'])) { if (!empty($val['routes'])) {
// 分组路由 // 分组路由
if ($pos = strpos($rule, ':')) { if ($pos = strpos($rule, ':') || $pos = strpos($rule, '<')) {
$str = substr($rule, 0, $pos); $str = substr($rule, 0, $pos);
$key1 = substr($rule, $pos) . '/';
} elseif ($pos = strpos($rule, '<')) {
$str = substr($rule, 0, $pos);
$key1 = substr($rule, $pos) . '/';
} else { } else {
$pos = strlen($rule) + 1; $str = $rule;
$key1 = '';
$str = $rule;
} }
if (0 !== strpos($url, $str)) { if (0 !== strpos($url, $str)) {
continue; continue;
@@ -487,9 +481,8 @@ class Route
if (is_numeric($key)) { if (is_numeric($key)) {
$key = array_shift($route); $key = array_shift($route);
} }
$url1 = substr($url, $pos);
$key = $key1 . $key;
$key = $rule . '/' . $key;
// 检查规则路由 // 检查规则路由
if (is_array($route)) { if (is_array($route)) {
$option1 = $route[1]; $option1 = $route[1];
@@ -501,7 +494,7 @@ class Route
$route = $route[0]; $route = $route[0];
$option = array_merge($option, $option1); $option = array_merge($option, $option1);
} }
$result = self::checkRule($key, $route, $url1, $pattern, $option); $result = self::checkRule($key, $route, $url, $pattern, $option);
if (false !== $result) { if (false !== $result) {
$request->route(['rule' => $key, 'route' => $route, 'pattern' => $pattern, 'option' => $option]); $request->route(['rule' => $key, 'route' => $route, 'pattern' => $pattern, 'option' => $option]);
return $result; return $result;