Drupal 8 预处理页面
Posted
技术标签:
【中文标题】Drupal 8 预处理页面【英文标题】:Drupal 8 preprocess page 【发布时间】: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
。
【问题讨论】:
我也不太喜欢我。但是,我不想重复这个问题。我也面临同样的问题。你修好了这个? 【参考方案1】:您的第二个 if 语句缺少右括号,您是否遇到错误?if ($node->isset('field_numero_cin'))
$field_cin = $node->get('field_numero_cin');
$vars['field_cin'] = $field_image->value();
【讨论】:
【参考方案2】:嗯……
您是否正在进入预处理程序? (在您之前添加一条调试消息 第一个“if
”)
您正在尝试使用->value()
访问$field_image
的值。尝试
->getValue()
或 ->value
愚蠢的问题,但也许值得:你试过清除缓存吗?添加预处理功能后需要。
【讨论】:
以上是关于Drupal 8 预处理页面的主要内容,如果未能解决你的问题,请参考以下文章