This commit is contained in:
thinkphp
2016-10-14 16:28:54 +08:00
2 changed files with 29 additions and 3 deletions

View File

@@ -85,13 +85,28 @@ class Url
} elseif (!empty($rule) && isset($name)) { } elseif (!empty($rule) && isset($name)) {
throw new \InvalidArgumentException('route name not exists:' . $name); throw new \InvalidArgumentException('route name not exists:' . $name);
} else { } else {
// 检查别名路由
$alias = Route::rules('alias');
if ($alias) {
// 别名路由解析
foreach ($alias as $key => $val) {
if (is_array($val)) {
$val = $val[0];
}
if (0 === strpos($url, $val)) {
$url = $key . substr($url, strlen($val));
break;
}
}
} else {
// 路由标识不存在 直接解析
$url = self::parseUrl($url, $domain);
}
if (isset($info['query'])) { if (isset($info['query'])) {
// 解析地址里面参数 合并到vars // 解析地址里面参数 合并到vars
parse_str($info['query'], $params); parse_str($info['query'], $params);
$vars = array_merge($params, $vars); $vars = array_merge($params, $vars);
} }
// 路由标识不存在 直接解析
$url = self::parseUrl($url, $domain);
} }
// 检测URL绑定 // 检测URL绑定

View File

@@ -25,7 +25,18 @@ class urlTest extends \PHPUnit_Framework_TestCase
public function setUp() public function setUp()
{ {
Route::rules([]); Route::rules(['GET' => [],
'POST' => [],
'PUT' => [],
'DELETE' => [],
'PATCH' => [],
'HEAD' => [],
'OPTIONS' => [],
'*' => [],
'alias' => [],
'domain' => [],
'pattern' => [],
'name' => []]);
Route::name([]); Route::name([]);
} }