2015-11-04 45 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

相關問題