Я работаю над Drupal 8,
У меня есть тип контента, называемый Домашняя страница, с полями контента и одним полем типа Entity Reference, который связан с элементом таксономии.
В page.html.twig я хочу получить значение этого элемента таксономии.
Я старался много думать, но ничего не работает.
читать, чем мне нужно сделать этот код:
{{node.field_home_page_slider_type}}
но это даст мне белую страницу. Я попытался с Kint, у меня есть много собственности, но я не нашел, как получить значение моего поля.
Какое решение?
Если вы все еще боретесь с веткой, просто приготовьте то, что вам нужно your_theme.theme
, Вы можете получить свой узел в
function HOOK_preprocess_page(&$variables) {
if (!array_key_exists('node', $variables))
return;
$node = $variables['node'];
// ...
}
Здесь вы можете подготовить свои данные и предоставить их для ветки следующим образом:
$variables['foo'] = 'bar';
В Twig вы можете сделать это:
{{ foo }}
Единственный способ, который я нашел, — это предварительная обработка узла страницы для получения содержимого поля таксономии.
Вот пример моего кода
$node = \Drupal::routeMatch()->getParameter('node');
$field = 'title';
$index = 0;
if($node){
$nodeArray = $node->toArray();
if (isset($nodeArray[$field][$index]['value'])) {
$value = $nodeArray[$field][$index]['value'];
}
if(isset($nodeArray['field_home_page_slider_type'])){
$id_slider_type = $nodeArray['field_home_page_slider_type'][0]['target_id'];
}
}