Php 将表单对象中的数据提取为值数组

Php 将表单对象中的数据提取为值数组,php,forms,symfony,Php,Forms,Symfony,我正在使用Symfony 2.5构建一个web应用程序。我目前正努力在内部转发附有POST/PUT表单数据的请求。关于这一点,我已经解决了一个问题。有关完整故事,请参见: 但是现在我有了转发的解决方案,我似乎无法找到一种方法将表单数据提取为可以附加到子请求的值数组。我尝试使用Form::getData()但是它返回了一个实体,我也尝试使用Form::all()但是我得到了一个表单对象数组。我可以迭代所有这些来获得表单中的有效值,但我觉得应该有更好的解决方案 有什么想法吗?如果执行HTTP重定向

我正在使用Symfony 2.5构建一个web应用程序。我目前正努力在内部转发附有POST/PUT表单数据的请求。关于这一点,我已经解决了一个问题。有关完整故事,请参见:

但是现在我有了转发的解决方案,我似乎无法找到一种方法将表单数据提取为可以附加到子请求的值数组。我尝试使用
Form::getData()
但是它返回了一个实体,我也尝试使用
Form::all()
但是我得到了一个表单对象数组。我可以迭代所有这些来获得表单中的有效值,但我觉得应该有更好的解决方案


有什么想法吗?

如果执行HTTP重定向,则需要在重定向之前将所有表单数据保存到会话中,然后再从会话中读取

UPD:我在文档中找到了一章可能对您有所帮助

这其实很简单:

他们说。 如果没有帮助,您可以尝试其中一种转换方法

简单的“强制转换”(父对象内的对象将保留为对象):

或者使用
get\u object\u vars()

或使用
阵列对象

$arrayObject = new ArrayObject($object);
$array = $arrayObject->getArrayCopy();
最后是JSON编码/解码

$array = json_decode(json_encode($object), true);

问题是,正如问题中所说,我不是重定向,我是转发(内部),因此没有来自浏览器的新请求。嗨,我认为json编码/解码可能是解决方案,但我的架构不同,不必在控制器之间转发请求。不过我还是要试一试
$arrayObject = new ArrayObject($object);
$array = $arrayObject->getArrayCopy();
$array = json_decode(json_encode($object), true);