Drupal twig не позволяет вам использовать несколько функций, но вы можете добавить пользовательские функции с помощью пользовательского расширения twig, скажем get_any_node_field_value
в ветке:
<div>
{{get_any_node_field_value(nodeId, 'field_my_custom_name')}}
</div>
эта статья кажется, дает хорошее введение в настройку пользовательского расширения ветки. В двух словах:
web/modules/custom/your_module/src/Extension/TwigExtension.php:
<?php
пространство имен Drupal\ваш_модуль\Расширение;
используйте Twig\Extension\AbstractExtension;
использовать Twig\TwigFunction;
класс TwigExtension расширяет AbstractExtension {
публичная функция getFunctions(): массив {
возвращаться [
новая TwigFunction('get_any_node_field_value', [$this, 'get_any_node_field_value']),
];
общедоступная функция get_any_node_field_value ($nodeId, $fieldName) {
// здесь ваша логика
}
}
Имейте в виду, что это не влияет на ваши настройки кеша, поэтому вы не будете получать автоматические обновления шаблона, если несвязанный узел X изменился. В зависимости от вашего варианта использования это может не быть проблемой, но позже это может упасть вам на ноги. Если вам нужно позаботиться о кешировании, лучше пройти предварительный процесс и расширить теги кеша.