【发布时间】:2017-01-19 23:54:06
【问题描述】:
我有一个包含三个值(两个文本,一个图像)的字段集合。当我像这样将这些呈现到页面时:
{% for service in node.field_sub_service %}
{% set subservice_id = service.getFieldCollectionItem().field_sub_service_title.value|lower|replace({" ": "-"}) %}
<div id="{{subservice_id}}" class="subservice">
<h5>{{service.getFieldCollectionItem().field_sub_service_title.value}}</h5>
<p>{{service.getFieldCollectionItem().field_sub_service_description.value}}</p>
<img src="{{file_url(service.getFieldCollectionItem().field_sub_service_image.entity.uri.value)}}" />
</div>
{% endfor %}
除非图像字段为空白,否则一切正常。所以我尝试建立一个典型的
{% if service.getFieldCollectionItem().field_sub_service_image.entity.uri.value %}
<img src="{{file_url(service.getFieldCollectionItem().field_sub_service_image.entity.uri.value)}}" />
{% endif %}
和
{% if service.getFieldCollectionItem().field_sub_service_image.entity.uri.value is defined %}
<img src="{{file_url(service.getFieldCollectionItem().field_sub_service_image.entity.uri.value)}}" />
{% endif %}
似乎无论如何,除非图像字段有一个值,否则我会在此处收到以下错误
Twig_Sandbox_SecurityError:调用“uri”方法 “Drupal\field_collection\Entity\FieldCollectionItem”对象不是 允许
更新
我还以几种方式尝试了下面的“|渲染”建议。
【问题讨论】:
-
似乎您应该检查呈现的字段,但不确定它是否适用于此:drupaleasy.com/quicktips/checking-existence-field-value-twig
-
我试过 |不幸的是,根据您的文章渲染它会返回自己的错误或 WSOD
标签: symfony drupal twig drupal-8