Drupal 8 - 如何访问嵌套在数组结构中深层的字段值

3
我正在尝试访问嵌套在数组中的内容类型的值。这是实际情况:
我想要自定义Drupal 8默认搜索结果页面的布局,并添加额外的字段信息。为了知道可以访问哪些字段,我使用了{{ kint(item.value) }},它显示了以下内容:

enter image description here

我想访问的字段嵌套在#result>node>fields下,例如bodyfield_category等。
有没有办法在我的Twig模板中直接访问它们? 我猜像{{ item.value['node']['fields']['field_name'] }}这样的东西?但是这没有给我任何结果!
我正在考虑的方法可能不适合,甚至可能根本不是一种方法! 我对Drupal还非常陌生。
我想要的只是访问嵌套在数组结构深处的预期字段。 有一种规则或语法可以遵循吗? 如果有人能解释从嵌套的Drupal数组内部访问特定元素的过程,那将是一个巨大的帮助。
注意:为了自定义布局,我将item-list.html.twig文件从/core/themes/stable/templates/dataset复制到了我的主题的templates文件夹中。
Drupal版本:8.2.3
编辑:搜索结果的模板文件(item-list.html.twig
<p class="righteous">Makes sure the page is being hit!</p>

{% if context.list_style %}
    {%- set attributes = attributes.addClass('item-list__' ~ context.list_style) %}
{% endif %}
{% if items or empty %}
    {%- if title is not empty -%}
        <h3>{{ title }}</h3>
    {%- endif -%}

    {%- if items -%}
        <{{ list_type }}{{ attributes }}>
        {%- for item in items -%}
            <li{{ item.attributes }}>{{ content.body }}</li>
        {%- endfor -%}
        </{{ list_type }}>
    {%- else -%}
        {{- empty -}}
    {%- endif -%}
{%- endif %}

无法找到任何错误。我的编辑器语法高亮只将 </{{ list_type }}> 变成红色。您检查过 IF 语句是否为真吗?我从未见过 {%- -%} 中的这些减号。 - Gabbax0r
我不知道那些“-”符号是在做什么。我是从稳定主题中复制的模板,它就是这样写的。 - Subrata Sarkar
1个回答

0

如果您想从模板中呈现特定字段,您必须使用以下示例:

{{ content.field_feature }}

你可以在数组或者 D8 的用户界面中看到你的字段的机器名称。

{{ content.field_<machine-name> }}

通过这个,你可以访问你的数组并自定义你的内容类型的主题。


我尝试过使用{{ content.body }}{{ content.field_category }},但是没有显示出任何内容。根据kint显示,我并没有看到名为“content”的元素。 - Subrata Sarkar
@SubrataSarkar 你是否尝试在模板中编写简单的HTML以检查d8是否使用该模板? - Gabbax0r
是的,我已经做了那个并确保这就是“那个”页面。 - Subrata Sarkar
@SubrataSarkar,你能给我看一下你的模板文件吗?也许你漏掉了一些必要的元素。 - Gabbax0r
嗨,我已经使用模板文件Html编辑更新了我的问题。 - Subrata Sarkar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接