Php Laravel API JSON请求更改属性名称

Php Laravel API JSON请求更改属性名称,php,json,laravel,laravel-5,eloquent,Php,Json,Laravel,Laravel 5,Eloquent,关于如何在Laravel中更改JSON请求的属性名或属性,有什么解决方案吗 类似于雄辩的API资源,但在响应中,它将在请求中完成,然后再指向请求验证 由此, { "agent_reference": "ABC-12345", "product_instance_id": "aca68c65-44c3-4ea1-a726-ca183de09a31", "add_ons": [ "string" ], "transportation": "st

关于如何在Laravel中更改JSON请求的属性名或属性,有什么解决方案吗

类似于雄辩的API资源,但在响应中,它将在请求中完成,然后再指向请求验证

由此,

{
    "agent_reference": "ABC-12345",
    "product_instance_id": "aca68c65-44c3-4ea1-a726-ca183de09a31",
    "add_ons": [
        "string"
    ],
    "transportation": "string",
    "guests": [
        {
        "guest_type_key": "string",
        "add_ons": [
            "string"
        ],
        "field_responses": [
            {
            "key": "string",
            "response": "string"
            }
        ]
        }
    ]
}
对此,

{
    "agent_id": "ABC-12345",
    "plan_id": "aca68c65-44c3-4ea1-a726-ca183de09a31",
    "additional_params": [
        "string"
    ],
    "pickup_place": "string",
    "visitors": [
        {
        "visitor_kty": "string",
        "additional_params": [
            "string"
        ],
        "responses": [
            {
            "id": "string",
            "result": "string"
            }
        ]
        }
    ]
}

Laravel4支持这样的东西,然而,遗憾的是,随着Laravel5的发布,它被删除了

对于Laravel 5.2+,实现这一点的“简洁”方法是覆盖
App\Http\Requests\FormRequest
类中的
validationData()
方法

看看:

照亮\Foundation\Http\FormRequest
受保护的函数validationData()
{
返回$this->all();
}
上述函数用于返回将发送到验证的所有输入,
$this
是请求本身

因此,在您的
App\Http\Requests\FormRequest
类中,您定义了完全相同的方法,获取输入,根据需要进行清理(甚至按照您的问题中的要求,使用不同的键名创建一个全新的结构),在请求中替换它以保持并返回,如下所示:

/**
*从请求中获取要验证的数据。
*
*@return数组
*/
受保护的函数validationData()
{
$inputs=$this->all();
//根据您的喜好清理$inputs。
$this->replace($inputs);//保存。
返回$this->all();
}
这就是在Laravel 5.2+中实现的方法


希望能有所帮助。

谢谢,先生,但问题是如何更改这些属性名称,特别是嵌套数组属性,以便传入此validationData函数?使用Laravel无法实现这一点,您必须使用纯php解决。非常感谢您的回答,先生。上帝保佑。