mirror of
https://gitee.com/fastadminnet/framework.git
synced 2026-07-07 15:12:48 +08:00
路由到类的方法和控制器方法 支持传入额外参数,用于方法的参数
This commit is contained in:
@@ -141,11 +141,11 @@ class App
|
|||||||
break;
|
break;
|
||||||
case 'controller':
|
case 'controller':
|
||||||
// 执行控制器操作
|
// 执行控制器操作
|
||||||
$data = Loader::action($dispatch['controller']);
|
$data = Loader::action($dispatch['controller'], $dispatch['var']);
|
||||||
break;
|
break;
|
||||||
case 'method':
|
case 'method':
|
||||||
// 执行回调方法
|
// 执行回调方法
|
||||||
$data = self::invokeMethod($dispatch['method']);
|
$data = self::invokeMethod($dispatch['method'], $dispatch['var']);
|
||||||
break;
|
break;
|
||||||
case 'function':
|
case 'function':
|
||||||
// 执行闭包
|
// 执行闭包
|
||||||
|
|||||||
@@ -1480,12 +1480,15 @@ class Route
|
|||||||
$result = ['type' => 'redirect', 'url' => $route, 'status' => isset($option['status']) ? $option['status'] : 301];
|
$result = ['type' => 'redirect', 'url' => $route, 'status' => isset($option['status']) ? $option['status'] : 301];
|
||||||
} elseif (false !== strpos($route, '\\')) {
|
} elseif (false !== strpos($route, '\\')) {
|
||||||
// 路由到方法
|
// 路由到方法
|
||||||
$route = str_replace('/', '@', $route);
|
list($route, $var) = self::parseUrlPath($route);
|
||||||
$method = strpos($route, '@') ? explode('@', $route) : $route;
|
$route = str_replace('/', '@', $route);
|
||||||
$result = ['type' => 'method', 'method' => $method];
|
$method = strpos($route, '@') ? explode('@', $route) : $route;
|
||||||
|
$result = ['type' => 'method', 'method' => $method, 'var' => $var];
|
||||||
} elseif (0 === strpos($route, '@')) {
|
} elseif (0 === strpos($route, '@')) {
|
||||||
// 路由到控制器
|
// 路由到控制器
|
||||||
$result = ['type' => 'controller', 'controller' => substr($route, 1)];
|
$route = substr($route, 1);
|
||||||
|
list($route, $var) = self::parseUrlPath($route);
|
||||||
|
$result = ['type' => 'controller', 'controller' => $route, 'var' => $var];
|
||||||
} else {
|
} else {
|
||||||
// 路由到模块/控制器/操作
|
// 路由到模块/控制器/操作
|
||||||
$result = self::parseModule($route);
|
$result = self::parseModule($route);
|
||||||
|
|||||||
Reference in New Issue
Block a user