Symfony2:需要一个每次加载我的基本布局时执行的控制器
Posted
技术标签:
【中文标题】Symfony2:需要一个每次加载我的基本布局时执行的控制器【英文标题】:Symfony2: Need a controller that is executed everytime my baselayout is loaded 【发布时间】:2014-08-21 17:09:08 【问题描述】:我在每个树枝模板中扩展我的基本布局,例如
% extends 'someBundle::base.html.twig' %
现在我需要在主页上做一些事情,因此我需要一个在每次加载 base.html.twig 时执行的控制器,所以不必在每个控制器中都做这些事情。
我用谷歌搜索了很多,但没有找到任何东西。不知道具体要搜索什么。
我确定你知道我的意思是,如果不是,进一步解释也没问题。提前致谢!
【问题讨论】:
【参考方案1】:您可以编写一个非常简单的Twig extension,它提供了一个模板功能,您可以再次将其嵌入到您的base.html.twig
中。
这样,每次base.html.twig
被加载,函数都会被执行。由于 Twig 扩展基本上是一种特殊类型的服务,您可以将任何所需的依赖项传递给它。
【讨论】:
嗯,据我所知,我可以添加一个带有树枝扩展的全局变量,或者创建我自己的过滤器或其他东西。但我真正想做的是将一个对象传递给 base.html.twig 模板,在那里我可以根据需要对其进行迭代。我需要动态构建 javascript 来为数据库中的谷歌地图创建标记。 好的,这听起来与您在问题中写的有点不同。无论如何……您可以像使用控制器一样使用 Twig 扩展。该函数可以在模板中回显或返回您想要的任何值,包括您要迭代的数组。以上是关于Symfony2:需要一个每次加载我的基本布局时执行的控制器的主要内容,如果未能解决你的问题,请参考以下文章
安装 RVM 后无法加载 Sass / Compass,与 Symfony2 中的 Assetic 一起使用
在基本视图(树枝)+ symfony2 中使用数据库中的数据