前端post过来的数据比如说有n个值,但都被加密最后变成一个值:encrypt_data=xxx,后端中间件需解密encrypt_data后把值重新装进post里面,但webman不支持修改post的数据,以前使用thinkphp是支持的,目前想到的办法:
1、把解密的值复制给 request()->xxx = xxx ,控制器或模型中就可以调用了;感觉不是很科学,不够完美,控制器模型里面获取值的地方都要改掉
2、直接修改request类,或重写;感觉也不完美也麻烦,也担心后续框架升级会有影响问题
原则是不喜欢修改框架本身自带的功能,不知道还有哪些办法
搜索答案中都不支持修改post get数据
无论如何都需要修改,是改动多少问题,可以重新封装 Request类。
改 support\Request.php 也没事吧,没什么东西
还是这个简单点
在中间件里面封装一层解密可以吗
继承\Webman\Http\Request,对你需要的方法进行重写,比我我发现,我需要每个接口把传过来的参数去除空格,然后我就把post 方法重写了
你可以对他进行修改,增加其他的操作
$currentBuffer = $request->rawBuffer();
//修改$currentBuffer
$newBuffer = processFunctiontName($currentBuffer);
$newRequest = new Request($newBuffer);