url()方法生成url问题
所属功能组件
路由(Route)
ThinkPHP 版本
8.1.3
操作系统
OpenAnolis Edition
错误信息
url()方法生成的url,不能生成“product/detail/3.html”形式了,只能“product/detail.html?id=3”这样,8.1.2是可以的
其它说明
No response
最好给出具体的路由定义 以及 url生成调用方法
最好给出具体的路由定义 以及 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,导致报路由未定义
最好给出具体的路由定义 以及 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' => '',
检查下 是否设置了 url_common_param 为false
已经修正了 可以用开发版测试下
已经修正了 可以用开发版测试下
试了,在开发版中,已经可以了