当我们在Laravel中收到Request对象时,有没有办法修改或添加数据?例如,我可以将参数(不是值,而是参数名称本身)重命名为其他内容吗?例如,输入可能被称为fname,但我想将其更改为first_name。或者我可以添加原始请求中没有的新输入和值吗?
我问的原因是我有一个方法接受一个Request对象,并期望某些输入名称。我希望能够重用该方法,但请求输入名称将不同。
答案 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([...]);
,但这会从请求中删除所有其他参数,并将其替换为您提供的阵列。