2015-04-30 42 views
1

我正在使用@Template註釋,因爲我使用的是HTML和REST的相同控制器。現在如果是HTML,我想在不同的條件下呈現不同的模板。有什麼辦法可以實用地設置這個值嗎?如何在運行時在symfony2中有條件地設置@Template值?

我不能使用$ this-> render(),因爲它在REST請求的情況下也會呈現模板。

回答

0

你可以直接調用模板猜測器,雖然它可能不如你期望的那麼好。你可能會重構一下。

$guesser = $this->container->get('sensio_framework_extra.view.guesser'); 
if($condition) { 
    $template = $guesser->guessTemplateName(array($this, 'oneAction'), $request, 'twig'); 
} else { 
    $template = $guesser->guessTemplateName(array($this, 'twoAction'), $request, 'twig'); 
} 
return $this->renderResponse($template, array()); 

這不是很重要。它只是使用請求格式來嘗試猜測文件名,但你也可以寫一些整潔的東西。

相關問題