framework icon indicating copy to clipboard operation
framework copied to clipboard

url()方法生成url问题

Open jsasg opened this issue 5 months ago • 6 comments

所属功能组件

路由(Route)

ThinkPHP 版本

8.1.3

操作系统

OpenAnolis Edition

错误信息

url()方法生成的url,不能生成“product/detail/3.html”形式了,只能“product/detail.html?id=3”这样,8.1.2是可以的

其它说明

No response

jsasg avatar Jul 28 '25 03:07 jsasg

最好给出具体的路由定义 以及 url生成调用方法

liu21st avatar Jul 28 '25 03:07 liu21st

最好给出具体的路由定义 以及 url生成调用方法

比如: // 产品相关路由 Route::group('product', function () { // 产品分类 - 查看子类 Route::get('subcategory/:id', 'Product/subcategory'); });

url生成调用: {:url('product/subcategory', ['id' => $vo.id])}

这样,在8.1.2中能够生成,预期的/index/product/subcategory/25.html,但是在8.1.3中是/index/product/subcategory.html?id=25,导致报路由未定义

jsasg avatar Jul 28 '25 03:07 jsasg

最好给出具体的路由定义 以及 url生成调用方法

我也遇到这个问题了 Route::group('sys_admin', function () { Route::get('list', 'SysAdmin/list'); }); url('SysAdmin/list') 这样,在8.1.2生成的是sys_admin/list,8.1.3生成的是SysAdmin/list导致报路由未定义 我是多应用模式 // pathinfo分隔符 'pathinfo_depr' => '/', // 是否开启路由延迟解析 'url_lazy_route' => false, // 是否强制使用路由 'url_route_must' => true, // 是否区分大小写 'url_case_sensitive' => true, // 合并路由规则 'route_rule_merge' => true, // 路由是否完全匹配 'route_complete_match' => true, // 去除斜杠 'remove_slash' => true, // 默认的路由变量规则 'default_route_pattern' => '[\w.]+', // URL伪静态后缀 'url_html_suffix' => 'html', // 访问控制器层名称 'controller_layer' => 'controller', // 空控制器名 'empty_controller' => 'Error', // 是否使用控制器后缀 'controller_suffix' => true, // 默认模块名(开启自动多模块有效) 'default_module' => 'index', // 默认控制器名 'default_controller' => 'Index', // 默认操作名 'default_action' => 'index', // 操作方法后缀 'action_suffix' => '', // 非路由变量是否使用普通参数方式(用于URL生成) 'url_common_param' => true, // 操作方法的参数绑定方式 route get param 'action_bind_param' => 'get', // 请求缓存规则 true为自动规则 'request_cache_key' => true, // 请求缓存有效期 'request_cache_expire' => null, // 全局请求缓存排除规则 'request_cache_except' => [], // 请求缓存的Tag 'request_cache_tag' => '',

zuiaixiaojiajia avatar Jul 28 '25 03:07 zuiaixiaojiajia

检查下 是否设置了 url_common_param 为false

liu21st avatar Jul 28 '25 08:07 liu21st

已经修正了 可以用开发版测试下

liu21st avatar Jul 28 '25 09:07 liu21st

已经修正了 可以用开发版测试下

试了,在开发版中,已经可以了

jsasg avatar Jul 28 '25 09:07 jsasg