从表单对象中提取数据作为值数组

时间:2014-08-29 20:50:23

标签: php forms symfony

我正在使用Symfony 2.5构建Web应用程序。我目前正在努力与附加POST / PUT表单数据的内部转发请求。我之前有过Cerad关于这一点的问题。有关完整的故事,请参阅:

Subrequests with post vars

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

有什么想法吗?

1 个答案:

答案 0 :(得分: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);