Silex:将新请求返回到另一条路线?

时间:2012-03-22 16:19:45

标签: http symfony1 request silex

我正在尝试使用Silex构建一个Web应用程序。对于我的一些路线,我希望结果是对另一条路线的新请求。

$app->get('/', function () use ($app) {
   //Do something
   //Request route /route2
});

$app->post('/route2', function () use ($app) {
   //Do something else
   return result
});

在我看来,这应该是一个非常标准的用例,但我找不到任何简单的方法来做到这一点。我知道redirect但我不只是想重定向,因为我不想使用在第一个函数中创建的一组新的post参数。

我对Silex / Symfony和HTTP都很陌生,所以我想知道我是否遗漏了必要的东西?

编辑:我可能会补充一点,我一直在考虑修改当前的Request对象并用我自己的参数替换post数据,然后进行重定向,但似乎在Request类中没有任何支持这一点。

1 个答案:

答案 0 :(得分:0)

您可以像这样使用Request Forwarding

$app->get('/', function () use ($app) {
//
$subRequest = Request::create('/route2', 'GET');
return $app->handle($subRequest, HttpKernelInterface::SUB_REQUEST);
});

或代替$subRequest,创建您的Request对象。