Как передать вычисленные данные из функций предварительной обработки темы в шаблоны Twig?


Моя общая проблема заключается в следующем: мне нужно вычислить некоторые данные из PHP, обычно используя API Drupal, а затем передать вычисленные значения в шаблон Twig (чтобы показать его).

Например: У меня есть шаблон с именем node--dog.html.twig, и внутри этого шаблона мне нужно показать общее количество Собак, которые у меня есть на веб-сайте. Для этого я вычислю из PHP общее количество , используя API Drupal::entityQuery. Но затем я должен передать это вычисленное значение в Шаблон веточки.

Я попытался использовать функцию предварительной обработки темы внутри файла <my_theme>.theme:

function customtheme_preprocess_node__dog(&$variables) {
  //
}

Отсюда я могу выполнять все вычисления PHP, но я не смог найти никакой документации, объясняющей, как передавать данные в представления Twig. Могу ли я использовать объект $variables? Есть ли какие-то недостатки? Есть ли лучший подход?

Author: Adrian Cid Almaguer, 2016-04-20

1 answers

$variables является массивом, а не объектом.

Но да, это единственный и единственный способ передать дополнительные данные в шаблон. Все, что вы туда добавите, будет доступно в шаблоне. $variables['hello'] = 'world'; может быть напечатан с {{ hello }}.

 3
Author: Berdir, 2017-01-17 21:00:27