mirror of
https://gitee.com/fastadminnet/framework.git
synced 2026-07-01 12:42:48 +08:00
修正路由混合变量中存在可选变量的BUG
This commit is contained in:
@@ -1236,17 +1236,20 @@ class Route
|
||||
foreach ($matches[1] as $name) {
|
||||
if (strpos($name, '?')) {
|
||||
$name = substr($name, 0, -1);
|
||||
$replace[] = '(' . (isset($pattern[$name]) ? $pattern[$name] : '\w+') . '?)';
|
||||
$replace[] = '(' . (isset($pattern[$name]) ? $pattern[$name] : '\w+') . ')?';
|
||||
} else {
|
||||
$replace[] = '(' . (isset($pattern[$name]) ? $pattern[$name] : '\w+') . ')';
|
||||
}
|
||||
$value[] = $name;
|
||||
}
|
||||
$val = str_replace($matches[0], $replace, $val);
|
||||
if (preg_match('/^' . $val . '$/', $m1[$key], $match)) {
|
||||
if (preg_match('/^' . $val . '$/', isset($m1[$key]) ? $m1[$key] : '', $match)) {
|
||||
array_shift($match);
|
||||
$match = array_slice($match, 0, count($value));
|
||||
$var = array_merge($var, array_combine($value, $match));
|
||||
foreach ($value as $k => $name) {
|
||||
if (isset($match[$k])) {
|
||||
$var[$name] = $match[$k];
|
||||
}
|
||||
}
|
||||
continue;
|
||||
} else {
|
||||
return false;
|
||||
|
||||
Reference in New Issue
Block a user