php - Symfony 2 使用 POST 重定向

标签 php symfony request

在 Symfony 2 中,我的 Controller 中有以下代码:

// prepare to render the seller info panel
$response = array(
    'data' => $data,
);

// render the seller info panel
return $this->redirect($this->generateUrl('route', $response));

路线在哪里:

route:
    pattern:  /listing/complete/{data}
    defaults: { _controller: FooBundle:Foo:action }
    requirements:
        _method:  POST

这不起作用,因为重定向正在发出 GET 请求。我也尝试过这种模式,但它与路线不匹配:

route:
    pattern:  /listing/complete
    defaults: { _controller: FooBundle:Foo:action }
    requirements:
        _method:  POST

我发现路由文档没有帮助。有没有办法让重定向发出 POST 请求?路线会是什么样子,我是否需要在 Controller 中执行任何操作才能实现它?

最佳答案

执行 POST 请求重定向的最新方法(从 Symfony 2.6 开始)很简单:

return $this->redirectToRoute('route', [
    'request' => $request
], 307);

代码307保留了请求方法,而redirectToRoute()是一个快捷方法。

关于php - Symfony 2 使用 POST 重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11227975/

相关文章:

php - javascript:确认 submit() 是否完成重新加载页面的代码

php - 如何获取特定用户的连接对象?

Symfony2.2 : default_locale always applying in twig translations

php - 通过电子邮件请求系统

php - Apache 的 mod_rewrite 和 %{REQUEST_URI} 问题

php - 适用于 Raspberry Pi 的最佳轻型服务器(Linux + Web 服务器 + 数据库)

php - 是否有自动缩进/整理 PHP 源代码的 Windows 程序?

php - Wordpress 开发 VS 生产环境

node.js - 对于 React 前端来说,使用 Node.js 比 symfony 有何优势?

request - 如何防止像Fiddler这样的软件拦截请求并拦截以 Electron 方式发出的请求