Url类添加Route方法根据路由别名获取URL地址

This commit is contained in:
thinkphp
2015-12-11 13:18:02 +08:00
parent d1a8d8c765
commit 8f594e5cb2
2 changed files with 25 additions and 4 deletions

View File

@@ -29,7 +29,7 @@ class Route
// 变量规则
private static $pattern = [];
// 路由别名 用于自动生成
public static $alias = [];
private static $alias = [];
// 添加URL映射规则
public static function map($map, $route = '')
@@ -629,4 +629,27 @@ class Route
return $result['route'];
}
}
// 根据路由别名和参数获取URL地址
public static function getRouteUrl($name, $params = [])
{
if (!empty(self::$alias[$name])) {
$url = self::$alias[$name];
if (is_string($params)) {
parse_str($params, $vars);
} else {
$vars = $params;
}
foreach ($vars as $key => $val) {
if (false !== strpos($url, '[:' . $key . ']')) {
$url = str_replace('[:' . $key . ']', $val, $url);
} else {
$url = str_replace(':' . $key, $val, $url);
}
}
return $url;
} else {
return null;
}
}
}

View File

@@ -99,9 +99,7 @@ class Url
// 根据路由名称和参数生成URL地址
public static function route($name, $params)
{
if (isset(Route::$alias[$name])) {
}
return Route::getRouteUrl($name, $params);
}
// 解析URL和参数 域名