$this->request->param()多出来一个参数怎么办

 时间:2024-10-13 01:43:17

场景:使用thinkphp5.0版本时发现一个问题,项目由线上移动到本地来,在本地运行时,这个函数获取参数时多出一个以“模块/控制器/方法”为key的数组元素(如下图红框),很是不解,查看了源代码,也没有发现原因,咱也不太清楚,咱也不敢问。只能自己解决.

$this->request->param()多出来一个参数怎么办

工具/原料

thinkphp5.0

phpstorm

发现问题

1、将线上代码pull到本地,运行时代码保持,后面排查我在本地运行时发现多出一个“模块/控制器/方法”的参数。

2、排查发现线上环境和本地环境,有区别的便是线上用的是nginx,本地用的apache,为了验证是不是这个导致的,我把本地转换成了nginx,果然代码回复正常,但是这不能靠更换环境去解决这个问题吧,所以得解决

解决问题

1、首先在相应模块下面添加一个common.php文件(有的可以不用添加),打开文件,新建一个函数名字为filterParam(自己取名字);这common文件为tp5框架模块公共文件,这里里面的函数众所周知,可以公用。

$this->request->param()多出来一个参数怎么办

2、过滤掉多出来的函数,大致思路是,有便过滤没有便放行,所以这个写起来写比较方便,1.首先我们获取当前module名和controller名以及action名,2.然后和所获取的所有参数键名对比,存在就删除该属性,然后跳出循环,因为只有一个这样的属性。然后返回正确的数据即可。具体可参考下图,如果你有更好的解决办法可以留言给我。

$this->request->param()多出来一个参数怎么办
  • $this->request->param()数据多了一个参数
  • request.getParameterMap()问题
  • ${pageContext.request.contextPath}
  • upload.parseRequest(request)得到的List为空
  • 热门搜索
    玩游戏买什么笔记本好 葱茏的意思 抵押车是什么意思 匿名是什么意思 8到10万买什么车好 什么护肤品适合20岁 至关重要的意思 盈余公积是什么意思 感恩的祝福 祝福语朋友