如何在没有自定义控制器的情况下渲染模板

编辑本页

警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 2.6,现已不再维护。

本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。

如何在没有自定义控制器的情况下渲染模板

通常,当您需要创建一个页面时,您需要创建一个控制器,并从该控制器中呈现一个模板。但是如果你渲染的是一个简单的模板,不需要传递任何数据,你可以完全避免创建控制器,通过使用内置的FrameworkBundle:模板:模板控制器。

例如,假设您想呈现一个静态/ privacy.html.twig模板,它不需要传递任何变量给它。你可以在不创建控制器的情况下做到这一点:

  • YAML
  • XML
  • PHP
1 2 3 4 5
acme_privacy:路径:/隐私默认值:_controller:FrameworkBundle:模板:模板模板:静态/ privacy.html.twig

FrameworkBundle:模板:模板控制器将简单地呈现您传递的模板模板默认值。

当然,当从模板中呈现嵌入式控制器时,也可以使用这个技巧。但是由于从模板中呈现控制器的目的通常是在自定义控制器中准备一些数据,因此这可能只在您想要缓存此页面的部分时有用(请参阅如何在没有自定义控制器的情况下渲染模板).

  • 嫩枝
  • PHP
1
{{render(url('acme_privacy'))}}

缓存静态模板

由于以这种方式呈现的模板通常是静态的,因此缓存它们可能是有意义的。幸运的是,这很简单!通过在你的路由中配置一些其他变量,你可以控制你的页面是如何被缓存的:

  • YAML
  • XML
  • PHP
1 2 3 4 5 6 7
acme_privacy:路径:/隐私默认值:_controller:FrameworkBundle:模板:模板模板:“静态/ privacy.html.twig”maxAge:86400sharedAge:86400

maxAge而且sharedAge值用于修改在控制器中创建的Response对象。有关缓存的更多信息,请参见HTTP缓存

还有一个私人变量(此处未显示)。默认情况下,响应将是公开的,只要maxAgesharedAge传递。如果设置为真正的,响应将被标记为私有。

此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。