2016-02-02 101 views
2

我發現了很多關於這個的討論,但我似乎無法使它工作。我定義在PHP變量這樣如何將一個php變量傳遞給樹枝模板

$theme_name = 'layout1';

所以我嘗試了以下獲得「佈局1」在我的CMS模板顯示使用{{theme.name}}通過下面的一箇中的每一個在一段時間,但沒有一個人工作。帶有$ twig的那些給出了未定義的變量'twig'。

$theme['name'] = $theme_name; 
$app["twig"]->addGlobal("name", $theme_name); 
$GLOBALS['theme'] = 'layout1'; 
$twig->addGlobal('themename', 'layout1'); 

那麼我哪裏錯了?

+1

哪裏是你的模板文件的調用(代碼)? – darkomen

+0

我在我的cms模板{{theme.name}}中有這個,但沒有顯示此代碼的位置。 – tyee

回答

0

就這麼簡單:

$twig->addGlobal('themename', $variation); 

,並在你的模板文件,你只需要調用

{{themename}} 
+0

謝謝。我試圖理解這個命令。它是否定義了一個名爲'themename'的全局樹枝變量,其中包含一個名爲$ variation的前一個已定義的php變量的內容?很難在sensiolabs網站上找到這個定義,儘管對於編碼人員來說這很明顯。 – tyee

2

您也可以在整個陣列添加到嫩枝:

$theme_name = 'layout1'; 
$somevar = 'blah'; 

$theme = array(
    'name' => $theme_name, 
    'something' => $somevar 
); 

$twig = new Twig_Environment($loader); 
$app["twig"]->addGlobal("theme", $theme); 

在你模板,你可以輸出這個數組的命名元素:

{{ theme.name }} 
{{ theme.something }} 

HTH

相關問題