发布表单时,getRequest()返回“GET”

时间:2012-10-29 14:26:54

标签: php symfony

我们正在Symfony2上开发两个独立的站点,在处理提交的表单时遇到了两个奇怪的问题。

两个网站都有一个用于显示表单和处理提交的操作。在处理GET和POST请求时,会检查$this->getRequest()->getMethod()。如果是GET,我们会显示表格。如果是POST,我们会将其持久保存到实体中。

但是,getMethod()似乎总是返回GET,即使在发布数据时也是如此。我知道请求方法应该是POST,因为浏览器的网络检查员说它将表单作为POST请求发送,var_dump($_POST);输出我们刚刚提交的表单的内容。

这些网站在CentOS 6.3的不同服务器上运行。我有第三个类似的服务器运行第三个站点,处理提交很好。可能导致这种情况的原因是什么?

1 个答案:

答案 0 :(得分:3)

我曾多次遇到过这样的问题并尝试过不同的方法。这是我的最后一个:

public function formAction(Request $request)
{
}
{% render 'Bundle:Controller:form' with {'request': app.request} %}

请注意,在这种情况下,您需要将请求作为参数获取 - 而不是从容器中获取它。如果你习惯性地使用Symfony,那么你已经这样做了。

如果你能找到解决这个问题的更好方法,我很想知道。 :)