路由优化 简化额外参数逻辑

This commit is contained in:
huangdijia
2015-12-04 23:02:31 +08:00
parent 491e33af8f
commit abeb4dca94

View File

@@ -446,19 +446,17 @@ class Route
parse_str($url, $var); parse_str($url, $var);
} }
if (isset($path)) { if (isset($path)) {
$params = []; // 解析path额外的参数
if (!empty($path[3])) { if (!empty($path[3])) {
$params = explode('/', array_pop($path)); preg_replace_callback('/([^\/]+)\/([^\/]+)/', function ($match) use (&$var) {
$var[strtolower($match[1])] = strip_tags($match[2]);
}, array_pop($path));
} }
// 解析[模块/控制器/操作] // 解析[模块/控制器/操作]
$action = array_pop($path); $action = array_pop($path);
$action = '[rest]' == $action ? REQUEST_METHOD : $action; $action = '[rest]' == $action ? REQUEST_METHOD : $action;
$controller = !empty($path) ? array_pop($path) : null; $controller = !empty($path) ? array_pop($path) : null;
$module = !empty($path) ? array_pop($path) : null; $module = !empty($path) ? array_pop($path) : null;
// 解析path额外的参数
for ($i = 0; $i < count($params); $i++) {
$var[$params[$i]] = $params[++$i];
}
} }
return ['route' => [$module, $controller, $action], 'var' => $var]; return ['route' => [$module, $controller, $action], 'var' => $var];
} }