【问题标题】:How can I display the field of the current page in a block twig template如何在块树枝模板中显示当前页面的字段
【发布时间】:2020-11-03 08:42:07
【问题描述】:

在我的 Basic page 内容类型中,我有一个名为 sidebar_image 的图像字段。

我在标题区域放置了一个名为header_block 的块,该块使用自定义树枝模板。我想知道如何让Basic page sidebar_image 显示在我的header_block 树枝模板中:

<h1>Some header</h1>
<img src="{{ sidebar_image }}" />

在预处理函数中:

THEME_preprocess_block__header_block {
  $variables['sidebar_image'] = // get current pages sidebar image URL
}

【问题讨论】:

    标签: drupal drupal-8


    【解决方案1】:

    您应该能够像这样加载当前页面(节点):

    $node = \Drupal::routeMatch()->getParameter('node');
    if ($node instanceof \Drupal\node\NodeInterface) {
      // You can get nid and anything else you need from the node object.
      $nid = $node->id();
    }
    

    https://drupal.stackexchange.com/questions/145823/how-do-i-get-the-current-node-id

    然后应该可以访问字段值,例如:

    $node->get('field_sidebar_image')->getValue();
    

    https://drupal.stackexchange.com/questions/144947/how-do-i-access-a-field-value-for-an-entity-e-g-node-object

    只需添加一些检查您的节点是否属于特定内容类型和类似内容。

    【讨论】:

    • 感谢您的帮助。虽然$node-&gt;get('field_sidebar_image')-&gt;getValue(); 对我不起作用。我最终将节点传递给树枝视图并执行:{{ file_url(node.field_sidebar_image.entity.uri.value) }}。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-21
    • 1970-01-01
    • 2013-08-07
    • 2012-01-11
    • 1970-01-01
    相关资源
    最近更新 更多