2012-05-23 72 views
3

Symfony2中的初學者,所以也許這是一個愚蠢的問題。Symfony2 - 在渲染模板時獲取外部內容

我需要得到一個HTTP查詢(外部服務器)的響應,並將其發送到客戶端之前,將其放在模板上。

<div id="main_content"> 
    Lorem Ipsum 
    <div id="external_content"> 
    {% get_content_by_url 'http://external.com/uri' params_object %} 
    </div> 
</div> 

或者,也許我應該得到來自控制器的響應,並把它作爲一個變量的模板?

什麼是最佳實踐(或者我總是錯誤的方式:)?

+0

嗨, 有不同的方法來做到: 1.獲取控制器中的內容並將其呈現在樹枝中 2.讓樹枝調用處理數據的額外控制器 3.使用jQuery(ajax)包含數據 – bodokaiser

+0

1和2對於安全來說似乎更好 –

回答

8

可以使用this bundle

後您的控制器進入該代碼:

$crawler = $client->request('GET', 'http://symfony-reloaded.org/'); 
$response = $client->getResponse(); 
$content = $response->getContent(); 

文件樹枝和finaly:

<div id="main_content"> 
    Lorem Ipsum 
<div id="external_content"> 
    {{ content }} 
</div> 
</div> 
+0

這看起來很簡單。我們可以使用相同的方法使用參數執行POST請求嗎? –

+0

yes:'$ crawler = $ client-> request('POST','http://www.symfony-project.org/',params request); ' –

+0

好吧,我明白了。謝謝 –