Drupal 8预处理页面

问题描述 投票:0回答:2

我是Drupal 8的新手,我有一个问题。 我需要在我的主题页面page-front.html.twig中显示CCK字段(自定义字段)。

据我所知,在非节点页面中显示节点变量是不可能的,所以我开始做一个预处理钩子。

我的预处理看起来像这样:

mythemename.theme

<?php

function THEME_NAME_preprocess_page(&$vars) {
  if (isset($vars['node'])) {
    $node = $vars['node'];
    if ($node->isset('field_numero_cin') {
      $field_cin = $node->get('field_numero_cin');
      $vars['field_cin'] = $field_image->value();
    }
  }
}    

不幸的是,当我调试(kint)时,page-front.html.twig中的变量是NULL

twig drupal-8 preprocessor
2个回答
0
投票

嗯...

  • 你正在进入预处理吗? (在第一个“if”之前添加调试消息)
  • 你正试图用$field_image访问->value()的价值。尝试使用->getValue()->value
  • 愚蠢的问题,但也许值得:你有没有尝试清除缓存?添加预处理功能后需要它。

0
投票

您的第二个if语句缺少一个紧密的括号,您是否收到错误?if ($node->isset('field_numero_cin')) { $field_cin = $node->get('field_numero_cin'); $vars['field_cin'] = $field_image->value(); }

© www.soinside.com 2019 - 2024. All rights reserved.