2015-11-04 49 views
0

我是symfony的新手,正在寻找一种方式存储(并读取)一些信息,我想在控制器和模板中使用它们。Symfony 2:存储模板和控制器应用程序配置的方式

基本上我想访问该样本结构:

project: 
    name: "My cool Project" 
cdn: "http://www.example.com" 
paths: 
    "images": "/images", 
    "pdf": "/pdf" 
... 

我已经尝试加入到我的parameters.yml。但它是正确的地方,以及如何在模板和控制器中访问它?

在控制,我可以这样做:

$this->getParameter("project") 

有没有办法直接访问project.name?例如:

$this->getParameter("project.name") 

如何在模板中访问它?

+0

parameter.yml实际上是针对基于主机而改变的信息。比如数据库密码。如果您的信息在生产和开发之间相同,那么我会建议制作一个新的参数文件,例如project.yml,并通过编辑config.yml来加载该文件。这可以避免使用可能不会有太大变化的东西来混淆参数。 – Cerad

+1

然后看一下菜谱中的软件包和配置章节:http://symfony.com/doc/current/cookbook/index.html开始可能有点难,但配置方面有很多功能。 – Cerad

回答

1

刚刚从控制器传递参数给视图:

在控制器等级:

return [ 
    'variable' => $this->getContainer()->getParameter('variable'); 
]; 

在树枝模板,将其打印出来:

{{ variable }} 

如果你想传递参数给模板没有传递给它的每个控制器,使用twig.globals配置:

twig: 
    globals: 
     variable: %variable% 

然后打印相同如上所述。

+0

是的,但在这种情况下,我必须将每个控制器中的参数传递给模板。例如,在基本布局模板中使用“cdn”值。 – bernhardh

+0

我明白了。我会编辑答案。 – rodrigorigotti

相关问题