我正在使用@Template注释,因为我正在使用相同的HTML和REST控制器。现在在HTML的情况下,我想在不同的条件下渲染不同的模板。有没有办法实用地设置这个值?
我不能使用$ this-> render(),因为它也会在REST请求的情况下呈现模板。
答案 0 :(得分: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());
这不是很重要。它只是使用请求格式来尝试猜测文件名,但你可以自己写一些更整洁的东西。