PHP Symfony2 使用 POST 数据重定向


PHP Symfony2 Redirect with POST data

我正在我的电子商务应用程序中实现支付网关。成功/失败时,它会在给定 URL 上返回 JSON 响应(成功和失败)。根据状态,我必须将其重定向到带有 POST 数据的成功和失败 URL。出于分析原因,我需要两个不同的URL(成功和失败)。

我的项目在Symfony 2.0上

现在我知道Symfony有办法重定向。

$this->redirect($this->generateUrl('pg_success'));

但是我不能以这种方式发送 POST 数据。

此外,还有一种方法可以使用转发和发送参数调用另一个操作

$this->forward('DemoBundle:Checkout:pgsuccess', $_POST);

但这不会更改地址栏中的 URL。

有没有办法执行 URL 重定向,我可以通过它发送参数?还是一些类似的解决方案?

无法使用

POST 数据重定向。您可以通过以下选项来解决问题:

  1. 使用 GET 参数重定向。

    $this->redirect($this->generateUrl('pg_success', $_POST));

  2. 对参数使用前向。

    $this->forward('DemoBundle:Checkout:pgsuccess', $_POST);

http://symfony.com/doc/current/book/controller.html#forwarding-to-another-controller

  1. 只需使用会话将数据传递到重定向目标。

重定向前:

$session = $this->getRequest()->getSession();
$session->set('data' => $_POST);

重定向后:

$session = $this->getRequest()->getSession();
$data = $session->get('data');

设置会话:

$session->set('data' , $_POST);