问答 / 8 / 5 / 创建于 2年前
laravel*
laravel request 驼峰转换为下划线
是不是从 AppServiceProvider 入手呢?怎么在不破坏代码的情况下,注入到框架自行完成。类似springboot的 @Configuration
AppServiceProvider
springboot
@Configuration
app_id => appId
❌ $appId = $request->post('app_id'); ✔ $appId = $request->post('appId');
求大佬告知。
可以加一个中间件。
$request->merge($key, $value); return $next($request);
觉得还是把post获取包装一次,用laravel自带的转换方法转换
get参数对应 $request->query 对象,post等对应 $request->request 对象,每个对象都有对应的 add 和 replace 方法示例如果只是修改 post 参数,就修改 request 对象,示例代码
<?php namespace App\Http\Middleware; use Closure; class ParameterToUpper { public function handle($request, Closure $next) { $parameters = []; foreach($request->request->all() as $key => $value) { $parameters[strtoupper($key)] = $value; //把key转为大写 } $request->request->add($parameters); // 往 post参数中增加一个大写的key // $request->request->replace($parameters);// 完全覆盖小写的key dd($request->post('A'));//b return $next($request); } }
此时传入一个小写 a 的参数 post 提交,打印 request->post()同时存在小写的 a 和 大写的 A 参数
request->post()
全修改的话是这样
$parameters = []; foreach($request->all() as $key => $value) { $parameters[strtoupper($key)] = $value; } $request->merge($parameters); //$request->replace($parameters); dd($request->input());
这就是中间件干的事情啊。
用str类就可以了啊
转为小驼峰的格式,Str::camel($value),app_id => appId
转为大驼峰的格式,Str::studly($value),app_id => AppId
我要举报该,理由是:
可以加一个中间件。
觉得还是把post获取包装一次,用laravel自带的转换方法转换
get参数对应 $request->query 对象,post等对应 $request->request 对象,每个对象都有对应的 add 和 replace 方法
示例如果只是修改 post 参数,就修改 request 对象,示例代码
此时传入一个小写 a 的参数 post 提交,打印
request->post()
同时存在小写的 a 和 大写的 A 参数全修改的话是这样
这就是中间件干的事情啊。
用str类就可以了啊
转为小驼峰的格式,Str::camel($value),app_id => appId
转为大驼峰的格式,Str::studly($value),app_id => AppId