【问题标题】:Drupal 8 preprocess pageDrupal 8 预处理页面
【发布时间】:2017-03-21 09:51:36
【问题描述】:

我是 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


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    嗯……

    • 您是否正在进入预处理程序? (在您之前添加一条调试消息 第一个“if”)
    • 您正在尝试使用-&gt;value() 访问$field_image 的值。尝试 -&gt;getValue()-&gt;value
    • 愚蠢的问题,但也许值得:你试过清除缓存吗?添加预处理功能后需要。

    【讨论】:

      猜你喜欢
      • 2018-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多