PHP Symfony2使用POST数据重定向

时间:2015-03-16 09:22:00

标签: php symfony redirect post

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

我的项目是在Symfony 2.0上

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

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

但我无法以这种方式发送POST数据。

此外,还有一种方法可以使用forward和send参数调用另一个动作

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

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

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

2 个答案:

答案 0 :(得分:5)

无法使用POST数据重定向。您有以下选项可以解决您的问题:

  1. 使用GET参数重定向。

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

  2. 使用参数前进。

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

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

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

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

      重定向后:

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

答案 1 :(得分:0)

设置会话:

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