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:需要一个每次加载我的基本布局时执行的控制器的主要内容,如果未能解决你的问题,请参考以下文章

Symfony2,Doctrine,延迟加载和代理类问题

安装 RVM 后无法加载 Sass / Compass,与 Symfony2 中的 Assetic 一起使用

symfony2.无法加载 pdo 驱动程序

在基本视图(树枝)+ symfony2 中使用数据库中的数据

Symfony2 Assetic + Twig 模板 JavaScript 继承

Symfony2 Knp-snappy 生成 PDF 不导入 CSS