2016-02-02 5 views
2

Я нашел немало дискуссий по этому вопросу, но я не могу заставить его работать. Я определяю переменную в PHP таким образомКак передать переменную php в шаблон твига

$theme_name = 'layout1';

Так что я попытался следующие, чтобы получить «Layout1», чтобы показать в моем шаблоне 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

ответ

1

Документация Twig охватывает это.

https://twig.symfony.com/doc/2.x/advanced.html

https://twig.symfony.com/doc/2.x/advanced.html#globals

глобальные переменный, как и любой другой переменный шаблон, за исключением того, что она доступна во всех шаблонах и макросах:

$twig = new Twig_Environment($loader); 
$twig->addGlobal('text', new Text()); 

Вы можете использовать текстовая переменная в любом месте шаблона: 1

{{ text.lipsum(40) }} 
0

Простой, как:

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

и в вас шаблон файла, который вы просто звоните

{{themename}} 
+0

Спасибо. Я пытаюсь понять эту команду. Определяет ли она глобальную переменную веточки, называемую «имя-имя», с содержимым предыдущей определенной переменной php, называемой переменной $? Трудно найти определение этого на сайте sensiolabs, хотя для кодировщиков это, вероятно, очевидно. – tyee

2

Вы также можете добавить весь массив Twig:

$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 }} 

НТН

Смежные вопросы