2014-08-29 70 views
-1

我正在使用Symfony 2.5构建一个Web应用程序。我目前正在努力处理内部转发请求,并附上POST/PUT表单数据。关于这一点,我有一个以前的问题通过Cerad解决。对于完整的故事看到:从表单对象中提取数据作为数组数组

Subrequests with post vars

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

有什么想法?

回答

0

如果您执行HTTP重定向,您需要将所有表单数据保存到会话,然后重定向并从会话中读取它。

UPD:我发现在文档章节,可以帮助您Using a Form without a Class

这其实是很容易的:

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

简单 “铸造”(内部父对象的对象保持为对象):

$array = (array) $object; 

,或者使用get_object_vars()

$array = get_object_vars($object); 

或使用ArrayObject

$arrayObject = new ArrayObject($object); 
$array = $arrayObject->getArrayCopy(); 

最后JSON编码/解码

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

正如问题所述,我不是重定向我转发(内部),所以没有新的请求从浏览器。 – 2014-08-30 07:06:33

+0

我的更新是否有意义? – Yaroslav 2014-09-01 09:58:54

+0

嗨,我认为JSON编码/解码可能是解决方案,但我的架构不同,因为不必在控制器之间转发请求。但我会尽力尝试 – 2014-09-18 07:46:53