Как передать вычисленные данные из функций предварительной обработки темы в шаблоны 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
? Есть ли какие-то недостатки? Есть ли лучший подход?
1 answers
$variables
является массивом, а не объектом.
Но да, это единственный и единственный способ передать дополнительные данные в шаблон. Все, что вы туда добавите, будет доступно в шаблоне. $variables['hello'] = 'world';
может быть напечатан с {{ hello }}
.