更改内容时 Drupal 8 丢失数据

Drupal 8 missing data when changing content

在 drupal 8 上,我按照调试的建议创建了一个模板。我的代码如下所示:

{% for key, element in elements if key|first != '#' %}
    {# element.content.field_shortcut_image #}
        <a href="{{ element.content.field_shortcut_url.0['#context'].value }}" class="col-sm-12 col-md-5ths col-lg-5ths" >
            <div class="shortcut-bg" style="background: transparent url({{ file_url(element.content.field_shortcut_image.0['#item'].entity.uri.value) }}) no-repeat center center;"></div>
            <div class="shortcut-title">
                {% if element.content.field_shortcut_icon.0['#item'].entity.uri.value %}
                    <img src="{{ file_url(element.content.field_shortcut_icon.0['#item'].entity.uri.value) }}" class="shortcut-icon" alt="{{ element['#configuration'].label }} icon" >
                {% endif %}
                {{ element['#configuration'].label }}
            </div>
        </a>
{% endfor %}

但是,每次我在 drupal 上进行任何更改时,例如可能更新内容,甚至与该块无关,数据都会消失。当数据存在时它看起来像这样: http://prntscr.com/d2wmku

更改或添加任何内容后看起来像这样: http://prntscr.com/d2wmxu

虽然当我清除 admin/config/development/performance 中的缓存时数据会返回,但这很痛苦,因为每次 create/edit 内容都会消失。知道这里发生了什么吗?

所以对于像我这样的菜鸟,也许这会有所帮助。

我尝试使用 'content' 数组,而不是从#elements 获取数据,这为我解决了问题。更新任何内容时,数据不会在内容数组中消失。我的代码如下所示:

{% set sicon = content.field_shortcut_icon.0['#item'].entity.uri.value %}
{% set sbg = content.field_shortcut_image.0['#item'].entity.uri.value %}
{% set slink = content.field_shortcut_url.0['#context'].value %}