奈曼旗华水建设工程公司网站,南宁360网,增城营销网站建设,百度app官网下载如何不用一个自定义的控制器渲染一个模板通常#xff0c;当您需要创建一个页面#xff0c;您需要创建一个控制器并且从该控制器中呈现模板。但如果您仅仅呈现一个简单的模板#xff0c;并且不需要传递给它的任何数据#xff0c;则完全没必要创建一个控制器#xff0c;通过…如何不用一个自定义的控制器渲染一个模板通常当您需要创建一个页面您需要创建一个控制器并且从该控制器中呈现模板。但如果您仅仅呈现一个简单的模板并且不需要传递给它的任何数据则完全没必要创建一个控制器通过使用内置的 FrameworkBundle:Template:template 控制器就可以达到目的。例如假设您想要呈现 static/privacy.html.twig 模板并且不需要给它传递任何变量。那么您可以这样做而无需创建一个控制器YAML:acme_privacy:path: /privacydefaults:_controller: FrameworkBundle:Template:templatetemplate: static/privacy.html.twigXML:xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://symfony.com/schema/routing http://symfony.com/schema/routing/routing-1.0.xsdFrameworkBundle:Template:templatestatic/privacy.html.twigPHP:use Symfony\Component\Routing\RouteCollection;use Symfony\Component\Routing\Route;$collection new RouteCollection();$collection-add(acme_privacy, new Route(/privacy, array(_controller FrameworkBundle:Template:template,template static/privacy.html.twig,)));return $collection;FrameworkBundle:Template:template 控制器将简单地呈现给您把它当做默认模板传递的任何模板。当然可以也使用这个技巧把控制器嵌入到模板中来展现这个模板。但由于把控制器嵌入到模板内的目的通常是在自定义的控制器中准备某些数据这可能只是在您想要缓存这个页面的一部分的时候有用(请参见缓存静态模板)。Twig{{ render(url(acme_privacy)) }}PHP:?php echo $view[actions]-render($view[router]-generate(acme_privacy, array(), true)) ?缓存的静态模板因为通常使用这种方法可以实现模板静态化所以对它们进行缓存会比较有意义。幸运的是这相对来说比较容易通过配置您的路径中的几个其他变量您就可以控制您的页面如何缓存YAML:acme_privacy:path: /privacydefaults:_controller: FrameworkBundle:Template:templatetemplate: static/privacy.html.twigmaxAge: 86400sharedAge: 86400XML:xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://symfony.com/schema/routing http://symfony.com/schema/routing/routing-1.0.xsdFrameworkBundle:Template:templatestatic/privacy.html.twig8640086400PHP:use Symfony\Component\Routing\RouteCollection;use Symfony\Component\Routing\Route;$collection new RouteCollection();$collection-add(acme_privacy, new Route(/privacy, array(_controller FrameworkBundle:Template:template,template static/privacy.html.twig,maxAge 86400,sharedAge 86400,)));return $collection;MaxAge 和 sharedAge 的值用于修改在控制器中创建的响应对象。对缓存的详细信息请参阅 HTTP 缓存。这里也有一个私有变量 (此处未显示)。在默认情况下响应将予以公开只要它传递了 maxAge 或 sharedAge 。如果设置为 true响应将被标记为私有。