mirror of
https://gitee.com/fastadminnet/framework.git
synced 2026-07-09 08:02:48 +08:00
改进Url类的生成 调整Route类的getRules方法
This commit is contained in:
@@ -554,11 +554,7 @@ class Route
|
|||||||
*/
|
*/
|
||||||
public static function getRules($method = '')
|
public static function getRules($method = '')
|
||||||
{
|
{
|
||||||
if ($method) {
|
return $method ? self::$rules[$method] : self::$rules;
|
||||||
return self::$rules[$method];
|
|
||||||
} else {
|
|
||||||
return array_merge_recursive(self::$rules['*'], self::$rules['GET'], self::$rules['POST'], self::$rules['PUT'], self::$rules['DELETE']);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -265,21 +265,35 @@ class Url
|
|||||||
return $item;
|
return $item;
|
||||||
}
|
}
|
||||||
// 获取路由定义
|
// 获取路由定义
|
||||||
$rules = Route::getRules();
|
$array = Route::getRules();
|
||||||
foreach ($rules as $group => $val) {
|
foreach ($array as $type => $rules) {
|
||||||
$rule = $val['rule'];
|
foreach ($rules as $group => $val) {
|
||||||
$route = $val['route'];
|
$rule = $val['rule'];
|
||||||
$vars = $val['var'];
|
$route = $val['route'];
|
||||||
$option = $val['option'];
|
$vars = $val['var'];
|
||||||
$pattern = $val['pattern'];
|
$option = $val['option'];
|
||||||
if (is_array($rule)) {
|
$pattern = $val['pattern'];
|
||||||
foreach ($rule as $key => $val) {
|
if (is_array($rule)) {
|
||||||
$key = $val['rule'];
|
foreach ($rule as $key => $val) {
|
||||||
$route = $val['route'];
|
$key = $val['rule'];
|
||||||
$var = $val['var'];
|
$route = $val['route'];
|
||||||
$option = $val['option'];
|
$var = $val['var'];
|
||||||
$pattern = $val['pattern'];
|
$option = $val['option'];
|
||||||
$param = [];
|
$pattern = $val['pattern'];
|
||||||
|
$param = [];
|
||||||
|
if (is_array($route)) {
|
||||||
|
$route = implode('\\', $route);
|
||||||
|
} elseif ($route instanceof \Closure) {
|
||||||
|
continue;
|
||||||
|
} elseif (strpos($route, '?')) {
|
||||||
|
list($route, $str) = explode('?', $route, 2);
|
||||||
|
parse_str($str, $param);
|
||||||
|
}
|
||||||
|
$var = array_merge($vars, $var);
|
||||||
|
$item[$route][] = [$group . '/' . $key, $var, $param];
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$param = [];
|
||||||
if (is_array($route)) {
|
if (is_array($route)) {
|
||||||
$route = implode('\\', $route);
|
$route = implode('\\', $route);
|
||||||
} elseif ($route instanceof \Closure) {
|
} elseif ($route instanceof \Closure) {
|
||||||
@@ -288,20 +302,8 @@ class Url
|
|||||||
list($route, $str) = explode('?', $route, 2);
|
list($route, $str) = explode('?', $route, 2);
|
||||||
parse_str($str, $param);
|
parse_str($str, $param);
|
||||||
}
|
}
|
||||||
$var = array_merge($vars, $var);
|
$item[$route][] = [$rule, $vars, $param];
|
||||||
$item[$route][] = [$group . '/' . $key, $var, $param];
|
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
$param = [];
|
|
||||||
if (is_array($route)) {
|
|
||||||
$route = implode('\\', $route);
|
|
||||||
} elseif ($route instanceof \Closure) {
|
|
||||||
continue;
|
|
||||||
} elseif (strpos($route, '?')) {
|
|
||||||
list($route, $str) = explode('?', $route, 2);
|
|
||||||
parse_str($str, $param);
|
|
||||||
}
|
|
||||||
$item[$route][] = [$rule, $vars, $param];
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user