1
我正在使用@Template註釋,因爲我使用的是HTML和REST的相同控制器。現在如果是HTML,我想在不同的條件下呈現不同的模板。有什麼辦法可以實用地設置這個值嗎?如何在運行時在symfony2中有條件地設置@Template值?
我不能使用$ this-> render(),因爲它在REST請求的情況下也會呈現模板。
我正在使用@Template註釋,因爲我使用的是HTML和REST的相同控制器。現在如果是HTML,我想在不同的條件下呈現不同的模板。有什麼辦法可以實用地設置這個值嗎?如何在運行時在symfony2中有條件地設置@Template值?
我不能使用$ this-> render(),因爲它在REST請求的情況下也會呈現模板。
你可以直接調用模板猜測器,雖然它可能不如你期望的那麼好。你可能會重構一下。
$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());
這不是很重要。它只是使用請求格式來嘗試猜測文件名,但你也可以寫一些整潔的東西。