symfony - $request->request->replace() 它有什么作用?
问题描述
我正在浏览 symfony 中的一些代码,我发现
$request->request->replace()
实际上,一个表单被发布并在一个函数中获取它的值,比如说,
public function someFunction(Request $request){
$data = $request->request->all() ? : json_decode($request->getContent(), true);
$request->request->replace($data);
}
当我倾倒时,
$request->request->replace($data)
结果为空。我不明白为什么要使用它,它有什么好处?
我搜索了一下,有人说它是用来清理数据的,有人说我们不应该用它来替换请求中的所有参数,而应该使用 set 方法。
而且我没有得到任何它,因为我是 symfony 的新手。
$request->request->replace() 对提供给它的参数做了什么?
解决方案
您的 $request 是Symfony\Component\HttpFoundation\Request的一个实例
。使用 $request 您可以访问诸如请求、查询、cookie、属性、文件、服务器、标头等属性。这些属性中的每一个都是Symfony\Component\HttpFoundation\ParameterBag类型。ParameterBag 的实例使用方法提供对请求参数的访问$request->request->all()
。此方法将返回 ParameterBag 实例的“参数”属性。
将$request->request->replace($data)
ParameterBag 实例中的“参数”属性设置为 $data。
replace() 方法也没有任何返回类型,这就是为什么当你转储时$request->request->replace($data)
你得到 null 作为输出。
如果您想在请求中添加一些额外的参数,那么replace()
这不是正确的选择,您应该使用set()
ParameterBag 中的方法。
推荐阅读
- javascript - 是 const 组件 = () => () 与 const Component = () => {return()} 在反应?
- menu - Typo3 中的 TMENU - 修改菜单项中的 href 标签
- amazon-s3 - 访问索引文档时,Cloudfront 给出“拒绝访问”
- python - 时区偏移超出范围的不一致 ValueError
- sql - SQL Server存储过程:如何在另一个表中找到至少包含相同数据的条目作为输入
- angular - 带有 rxjs switchmap 的 Angular 异步管道
- javascript - 如何从 webpack.config.js 文件访问环境变量?
- scikit-learn - 如何在一次热编码后预处理测试数据
- javascript - 为什么我的 React 组件图标显示为 typeof 对象?
- mysql - 节点/Express + MySQL,错误:ER_PARSE_ERROR。数据已正确插入,但仍显示错误