Drupal 8 - 如何访问嵌套在数组结构内部的字段值

时间:2016-12-08 15:02:20

标签: arrays twig drupal-8 kint

我正在尝试访问深入嵌入数组的内容类型的值。这是实际情况:

我想使用其他字段信息自定义Drupal 8的默认搜索结果页面布局。要知道哪些字段可供我访问,我使用了{{ kint(item.value) }},其中显示了这一点:

enter image description here

我要访问的字段嵌套在 #result>node>fields 下,如bodyfield_category等。

有什么方法可以直接在我的树枝模板中访问它们吗?我在猜{{ item.value['node']['fields']['field_name']} }之类的东西?但这没有给我什么!

我思考的方式很可能不是一种合适的方法,甚至可能根本就不是一种方法!我对Drupal来说还是一个新手。

我想要的只是访问嵌套在数组结构内部深处的所需字段。是否有一种拇指规则或语法可供遵循?如果有人请解释从嵌套的Drupal数组中访问特定元素的过程,这将是一个很大的帮助。

注意:为了自定义布局,我将item-list.html.twig文件从/core/themes/stable/templaes/dataset复制到了我主题的模板文件夹。

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 %}

1 个答案:

答案 0 :(得分:0)

如果要渲染模板中的特定字段,则必须使用例如:

{{ content.field_feature }}

您可以在数组或d8的UI中看到字段的计算机名称。

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

有了这个,你可以自己访问你的数组并主题你的内容类型。