Symfony 2将请求转发到具有更改内容的另一个控制器

时间:2012-07-27 00:29:42

标签: symfony

我想使用以下内容将请求转发给另一个控制器:

$controller_response = $this->forward( 'MyBundle:Clients:getClients' );

工作正常,但我需要更新请求以获得不同的内容,我无法弄清楚我应该使用哪种方法,以下不起作用:

$request->content->set('new content');
$request->set('content', 'new content');
$request->setContent('new content');

甚至可以这样做吗?如果不是,我可以创建一个全新的请求并将其作为参数添加,我宁愿尽可能避免这样做。

2 个答案:

答案 0 :(得分:2)

您可以使用setContent方法更改响应内容。

$response->setContent('<html>Hello</html>');

您也可以更改请求

$request->request->set('key', 'value');
$request->query->set('key', 'value');

答案 1 :(得分:1)

$request = Request::createFromGlobals();
$newContent = json_decode($request->getContent(), true);
$request->initialize($request->query->all(), $request->request->all(), $request->attributes->all(), $request->cookies->all(), $request->files->all(), $request->server->all(),  $newContent);

不幸的是,似乎并没有很好的方法,但这对我有用。