symfony2:使用特殊参数应用不同的模板?

时间:2015-08-11 15:46:12

标签: symfony templates twig

当我在网址中输入?t = 1 时,如何应用不同的模板(视图)?

示例:

mysite.com -> opens home with default template, let's say home.twig
mysite.com/?t=1 -> opens home with another template : home1.twig (or 1/home.twig)

有可能吗?

谢谢:)

1 个答案:

答案 0 :(得分:1)

当然,您可以为此定义不同的路线,但第二个网址应该看起来像" mysite.com/1":

route_1:
    pattern: /
    defaults: { _controller: AppBundle:Index:home }

route_2:
    pattern: /{t}
    defaults: { _controller: AppBundle:Index:custom }
    requirements:
        t: '[0-9]+'

第二种方法是根据" t"的存在加载不同的视图。参数:

public function homeAction(Request $request)
{
    $view = $request->query->has('t') && $request->query->get('t') == 1 ? 'home1.twig.html' : 'home.twig.html';
    return $this->render($view, $params);
}