修正Route类match方法一处变量解析问题

This commit is contained in:
thinkphp
2016-07-27 11:52:36 +08:00
parent 78fe41a037
commit b332e55dd2

View File

@@ -340,9 +340,10 @@ class Route
} else { } else {
if ($routes instanceof \Closure) { if ($routes instanceof \Closure) {
// 闭包注册 // 闭包注册
$currentOption = self::$option;
self::setOption($option); self::setOption($option);
call_user_func_array($routes, []); call_user_func_array($routes, []);
self::setOption([]); self::setOption($currentOption);
} else { } else {
// 批量注册路由 // 批量注册路由
self::rule($routes, '', $type, $option, $pattern); self::rule($routes, '', $type, $option, $pattern);
@@ -1102,6 +1103,7 @@ class Route
// val中定义了多个变量 <id><name> // val中定义了多个变量 <id><name>
if (false !== strpos($val, '<') && preg_match_all('/<(\w+(\??))>/', $val, $matches)) { if (false !== strpos($val, '<') && preg_match_all('/<(\w+(\??))>/', $val, $matches)) {
$value = []; $value = [];
$replace = [];
foreach ($matches[1] as $name) { foreach ($matches[1] as $name) {
if (strpos($name, '?')) { if (strpos($name, '?')) {
$name = substr($name, 0, -1); $name = substr($name, 0, -1);