原项目使用tp5多应用模式,未使用强制路由,且url参数是按照顺序解析url_param_type = 1
想尝试能不能从tp5升级到tp6,虽然有官方升级文档,但tp6的url参数方式只能按照名称成对解析,无法满足需求,于是看了下源码看看能不能处理
config.php文件中设置‘url_param_type‘ => 1)application/index/controller/TestController.php public function test($a = ‘‘, $b = ‘‘)
{
echo ‘参数a:‘, $a, ‘<br/>‘;
echo ‘参数b:‘, $b, ‘<br/>‘;
}
curl http://localhost/index/test/test/111/222参数a:111
参数b:222
参数a:222
参数b:
curl http://localhost/index/test/test/a/111/b/222curl http://localhost/index/test/test/fff/111/fff/222也行,具体可以打印request()->param()看看就知道了think\route\dispatch\Url->parseUrl(string $url): arrayparseUrl方法可以处理,但对框架有影响,所以建议从项目内部替换Url类composer require aichenk/tp6-route-paramconfig/route.php中添加参数‘url_param_type‘ => 1即可(0即为关闭)参数a:111
参数b:222
处理tp5升级到tp6时,url参数无法按顺序解析(url_param_type)
原文:https://www.cnblogs.com/aichenk/p/15008877.html