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)) {
throw new \InvalidArgumentException('route name not exists:' . $name);
} 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'])) {
// 解析地址里面参数 合并到vars
parse_str($info['query'], $params);
$vars = array_merge($params, $vars);
}
// 路由标识不存在 直接解析
$url = self::parseUrl($url, $domain);
}
// 检测URL绑定

View File

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