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

1. 当前使用的 Laravel 版本?

laravel*

2. 问题描述?

laravel request 驼峰转换为下划线

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

3. 您期望得到的结果?

app_id => appId

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

求大佬告知。

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 5

用str类就可以了啊

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

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

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年前 评论

可以加一个中间件。

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

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

1年前 评论

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

1年前 评论

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