/**
* 设置$request数据,自动覆盖更新
* @param array $data
*/
function set( array $data )
{
$key = key($data);// 获取数组的键名
$rawData = $this->$key ?: [];// 获取原数据
$data = array_merge($rawData, $data[$key]);// 合并新数据
$this->$key = $data; // 设置新数据
}
在需要设置更新数据的地方直接 $request->set($data);即可
这样做的好处是可以更新已有的值
非常感谢,正好需要~
👍
建议写一下怎么调用,不然还得研究一下
中间件中,我直接这样也行啊
在控制器中用 $request->Webman ; 这种方式接收
你用 request()->get() 这个获取一下
可能我们的应用场景不一样吧.. 我想要的是 修改 get() post() 得到的数据,不是直接去获取对应字段
这不是http传参啊,get / post当然获不到了
那之前本来就可以直接赋值啊,用set函数的意义,我觉得应该就是可以修改 get、post 获取的值
非常好用
\Workerman\Protocols\Http\Request::__set
\Workerman\Protocols\Http\Request::__get
本身就支持给请求对象赋值。
客户端get、post过来的参数,建议不要修改。
宏指令:
\Illuminate\Support\Traits\Macroable
或者根据应用与业务,给
\support\Request
附加特性 trait 来实现代码提示。例如,我这个项目给请求类附加的特性有,普通用户、开放APi、商户等。
你写的没啥问题,代码规范是对的
上面方法 有问题 旧的请求数据都没了
以下方法不会销毁旧的数据