mirror of
https://gitee.com/fastadminnet/framework.git
synced 2026-07-05 22:52:49 +08:00
url_controller_convert 和 url_action_convert 合并为 url_convert 参数 改进Route类对url_convert的支持
This commit is contained in:
@@ -98,7 +98,7 @@ class App
|
||||
break;
|
||||
case 'module':
|
||||
// 模块/控制器/操作
|
||||
$data = self::module($dispatch['module'], $config);
|
||||
$data = self::module($dispatch['module'], $config, isset($dispatch['convert']) ? $dispatch['convert'] : null );
|
||||
break;
|
||||
case 'controller':
|
||||
// 执行控制器操作
|
||||
@@ -222,9 +222,10 @@ class App
|
||||
* @access public
|
||||
* @param array $result 模块/控制器/操作
|
||||
* @param array $config 配置参数
|
||||
* @param bool $convert 是否自动转换控制器和操作名
|
||||
* @return mixed
|
||||
*/
|
||||
public static function module($result, $config)
|
||||
public static function module($result, $config, $convert = null)
|
||||
{
|
||||
if (is_string($result)) {
|
||||
$result = explode('/', $result);
|
||||
@@ -258,13 +259,15 @@ class App
|
||||
// 当前模块路径
|
||||
App::$modulePath = APP_PATH . ($module ? $module . DS : '');
|
||||
|
||||
// 是否自动转换控制器和操作名
|
||||
$convert = is_bool($convert) ? $convert : $config['url_convert'];
|
||||
// 获取控制器名
|
||||
$controller = strip_tags($result[1] ?: $config['default_controller']);
|
||||
$controller = $config['url_controller_convert'] ? strtolower($controller) : $controller;
|
||||
$controller = $convert ? strtolower($controller) : $controller;
|
||||
|
||||
// 获取操作名
|
||||
$actionName = strip_tags($result[2] ?: $config['default_action']);
|
||||
$actionName = $config['url_action_convert'] ? strtolower($actionName) : $actionName;
|
||||
$actionName = $convert ? strtolower($actionName) : $actionName;
|
||||
|
||||
// 执行操作
|
||||
if (!preg_match('/^[A-Za-z](\/|\.|\w)*$/', $controller)) {
|
||||
|
||||
@@ -606,7 +606,7 @@ class Route
|
||||
self::$bind = ['type' => 'group', 'group' => substr($result, 1, -1)];
|
||||
} else {
|
||||
// 绑定到模块/控制器 例如 index/user
|
||||
self::$bind = ['type' => 'module', 'module' => $result];
|
||||
self::$bind = ['type' => 'module', 'module' => $result, 'convert' => true];
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -853,7 +853,7 @@ class Route
|
||||
if (!empty($array[1])) {
|
||||
self::parseUrlParams($array[1]);
|
||||
}
|
||||
return ['type' => 'module', 'module' => $controller . '/' . $action, 'params' => []];
|
||||
return ['type' => 'module', 'module' => $controller . '/' . $action, 'convert' => true];
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -973,7 +973,7 @@ class Route
|
||||
if (!empty($result['var'])) {
|
||||
$_GET = array_merge($result['var'], $_GET);
|
||||
}
|
||||
return ['type' => 'module', 'module' => $result['route']];
|
||||
return ['type' => 'module', 'module' => $result['route'], 'convert' => null];
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1172,10 +1172,7 @@ class Route
|
||||
// 解析剩余的URL参数
|
||||
self::parseUrlParams(implode('/', $paths), $var);
|
||||
// 路由到模块/控制器/操作
|
||||
$result = ['type' => 'module', 'module' => $result['route']];
|
||||
// 路由地址中的控制器和操作关闭自动转换
|
||||
Config::set('url_controller_convert', false);
|
||||
Config::set('url_action_convert', false);
|
||||
$result = ['type' => 'module', 'module' => $result['route'], 'convert' => true];
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user