更改内容时 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 %}
在 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 %}