我正在使用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()对提供的参数有什么作用?
答案 0 :(得分:1)
您的$ request是 Symfony \ Component \ HttpFoundation \ Request 的一个实例
。使用$ request,您可以访问属性,例如请求,查询,cookie,属性,文件,服务器,标头。这些属性的每个类型均为 Symfony \ Component \ HttpFoundation \ ParameterBag 。 ParameterBag实例提供使用方法$request->request->all()
访问请求参数的权限。此方法将返回ParameterBag实例的'parameters'属性。
$request->request->replace($data)
会将ParameterBag实例中的'parameters'属性设置为$ data。
而且replace()方法没有任何返回类型,这就是为什么您转储$request->request->replace($data)
时输出为null的原因。
如果要向请求中添加一些额外的参数,则replace()
不是正确的选择,而是应在ParameterBag中使用set()
方法。