2012-09-17 89 views
1

我正在使用相同的操作來處理htmljson響應,只需在.json後面加上後綴即可。FOSRestBundle:將附加變量傳遞給樹枝模板

json正在工作沒有問題,但當迴應是html我需要傳遞一個額外的變量到Twig模板,我不知道,我也不知道該怎麼做。此刻,我的代碼是:

// $entity = get my data; 

$name = 'foo'; 

$view = $this->view($entity, 200) 
    ->setTemplate('MyBundle:MyController:myTemplate.html.twig') 
    ->setTemplateVar('entity') 
    ; 

return $this->handleView($view); 

如何傳遞$namemyTemplate.html.twig?我需要的東西是這樣的:

//... 
->setTemplate('MyBundle:MyController:myTemplate.html.twig', array('name' => $name)) 
//... 

回答

0

好的,我得到的響應打開issue in FosRestBundle github page

目前,沒有直接的方法,但下面的過程將工作:

1)添加_format選項分別htmljson值,在路由的默認值:

defaults: { _controller: myBundle:myController:myAction, _format: html } #or json 

2)添加$_format作爲動作簽名的第一個參數:

public function myActionAction($_format, $any_other_paramer) 

3)有條件地向枝條模板添加更多變量:

if ($this->get('fos_rest.view_handler')->isFormatTemplating($_format)) { 
    $view->setData(array('name' => $name, 'entity' => $view->getData())); 
}