2012-07-27 67 views
0

我想轉發給使用這樣的另一個控制器的請求另一個控制器:Symfony的2將請求轉發到內容更改

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

這工作正常,但我需要更新的要求有不同的內容,我不能確定我應該使用什麼方法,下面的方法不起作用:

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

甚至有可能這樣做嗎?如果不是,我可以創建一個全新的請求並添加它作爲參數,我寧願儘可能避免這樣做。

回答

2

您可以使用setContent方法更改響應內容。

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

您還可以改變的要求

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

這似乎只爲響應對象工作,而不是請求...... – greg 2012-07-27 16:51:53

+0

調用未定義的方法的Symfony \分量\ HttpFoundation \支持:: setContent() – greg 2012-07-27 17:41:47

+0

哦,對了,不好意思,更新 – AdrienBrault 2012-07-28 15:39:33

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); 

遺憾的是,似乎沒有被這樣做的一個很好的方式,但是這爲我工作。