Laravel - 修改收到的请求参数

时间:2016-01-19 20:12:23

标签: laravel request laravel-5.1

当我们在Laravel中收到Request对象时,有没有办法修改或添加数据?例如,我可以将参数(不是值,而是参数名称本身)重命名为其他内容吗?例如,输入可能被称为fname,但我想将其更改为first_name。或者我可以添加原始请求中没有的新输入和值吗?

我问的原因是我有一个方法接受一个Request对象,并期望某些输入名称。我希望能够重用该方法,但请求输入名称将不同。

2 个答案:

答案 0 :(得分:0)

如果您有对象,则可以编辑和添加新项目。

$request->url = $new_url;

$request->new_item = 1;

如果对象项不存在,则会自动创建,如果存在,则会对其进行修改。

答案 1 :(得分:0)

经过测试@ marc-garcia答案,并且不会在脚本执行中持续存在。这将......

    // merge defaults into the request.
    // this makes it consistent everywhere (blade, controller...)
    request()->merge([
        // find the request if it exists, second param is the default value
        'reservable' =>request( 'reservable', (self::RESERVABLE_BY_DEFAULT?1:0) )
    ]);

您也可以使用request()->replace([...]);,但这会从请求中删除所有其他参数,并将其替换为您提供的阵列。