laravel如何优雅的将请求值下划线自动转为驼峰

1. 当前使用的 Laravel 版本?

laravel*

2. 问题描述?

laravel request 驼峰转换为下划线

是不是从 AppServiceProvider 入手呢?
怎么在不破坏代码的情况下,注入到框架自行完成。
类似springboot@Configuration

3. 您期望得到的结果?

app_id => appId

❌ $appId = $request->post('app_id');
✔ $appId = $request->post('appId');

求大佬告知。

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 5

可以加一个中间件。

$request->merge($key, $value);
return $next($request);
1年前 评论

觉得还是把post获取包装一次,用laravel自带的转换方法转换

1年前 评论

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 参数

file

全修改的话是这样

$parameters = [];
foreach($request->all() as $key => $value) {
    $parameters[strtoupper($key)] = $value;
}
$request->merge($parameters);
//$request->replace($parameters);

dd($request->input());

Laravel

1年前 评论

这就是中间件干的事情啊。

1年前 评论

用str类就可以了啊

转为小驼峰的格式,Str::camel($value),app_id => appId

转为大驼峰的格式,Str::studly($value),app_id => AppId

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!