请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

多级控制器动态路由,参数id验证是否正整数时,如果/id 是逗号隔开会报错“控制器不存在:app\api\controller\V1"”

多级控制器动态路由,参数id验证是否正整数时,如果/id 是逗号隔开会报错“控制器不存在:app\api\controller\V1",二级控制器目录是小写v1,但是报错时是大写。
访问地址:http://wxshop.com/api/v1/banner/a,1
路由:Route::get(‘api/:version/banner/:id’,‘api/:version.Banner/getBanner’);
查找后发现是tp更新一次漏洞时
在think\route\dispatch\Url类的parseUrl方法,解析控制器后加上

if (KaTeX parse error: Expected 'EOF', got '&' at position 12: controller &̲& !preg_match('…/’, $controller)) {
throw new HttpException(404, ‘controller not exists:’ . $controller);
}

正在回答 回答被采纳积分+3

1回答

7七月 2020-02-22 14:21:57

你访问任何一个网站,都不会在路径里 放逗号

0 回复 有任何疑惑可以回复我~
  • 提问者 qq_青萍之末_2 #1
    http://wxshop.com/api/v1/banner/1.1当参数是小数时,也报控制器不存在:app\api\controller\V1,ExceptionHandler类里面的render方法参数是基类 Exception。尝试解决:路由限制pattern(['id'=>'[\d.]+'])ern(['id'=>'\d+'])后,如果参数是字母也报控制器不存在:app\api\controller\V1,
    回复 有任何疑惑可以回复我~ 2020-02-24 14:13:47
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信