2012-07-06 68 views
3

在Symfony2中我用下面的配置YAML:Symfony2中:參考字符串或配置YAML陣列

// config.yml 
parameters: 
    something: 
    content: 
     price: 2.30 
     mainText: 'Some text here.' 
     redText: 'This is a text here plus price: ' %price% 

的%的價格%是錯誤的,給我一個錯誤,但系統會告訴它的一個數組,這樣怎麼點到['內容'] [價格]?

+0

而你爲什麼要把文本放在配置文件中?爲什麼不把它放在翻譯文件中? – 2012-07-08 17:22:26

+0

我的網站沒有使用多種語言。但是它支持不同品牌,並且yml中的一些文本更容易配置爲多個版本 – 2012-07-08 20:39:59

+0

您還可以在「Extension」類(http://symfony.com/doc/current/cookbook/bundles/extension)中構建必要的參數。 HTML)。但是,它需要更多的努力,尤其是如果您之前沒有使用過配置公開。 – gilden 2012-07-13 20:53:19

回答

7

這裏是你如何能做到這

parameters: 
    something.content.price: 2.30 
    something: 
     content: 
      mainText: 'Some text here.' 
      redText: 'This is a text here plus price: %something.content.price%' 

在這裏,我們只有2個參數,something.content.price包含浮動,並something包含數組。

這意味着您將只能直接訪問DI配置中的那些2個。

+0

它的工作,但是這是唯一的方法? :/ – 2012-07-08 20:29:03

+0

這意味着我也可以定義價格:2.30然後使用%價格%,它可能不會像它應該那樣可讀:/ – 2012-07-08 20:31:03

+0

我看了DI組件代碼,這是最合理的事情,我發現我工作可以用。 – AdrienBrault 2012-07-08 22:05:25

-2

也許%something.content.price%

+0

不,它不工作:/ – 2012-07-07 16:03:48

+0

將無法​​正常工作[http://stackoverflow.com/a/19920871/2178259](http://stackoverflow.com/a/19920871/2178259) – 2014-08-29 16:57:43

0

Same answer, different post

有點晚了,但在這裏就是你要找的解決方案:P

// parameters.yml 
parameters: 
    something: 
    content: 
     price: 2.30 
     mainText: 'Some text here.' 
     redText: 'This is a text here plus price: ' 

使用數組中所定義的價格會的方式是這樣的:

//config.yml 
twig: 
    globals: 
     fee: content['price'] 

說明
當您導入參數文件,自動進入你的config.yml文件,你可以訪問在那裏定義的所有變量。 要記住,當你使用你定義的結構。

您正在定義一個名爲內容的鍵值對數組,其中包含許多鍵和值對,引用它們的方式如上所述。

希望這對那些可能正在尋找的人有用! :)