繁体   English   中英

检查字段收集图像字段是否存在-空字段会产生错误

[英]Check if field collection image field exists - empty field creates error

我有一个采用三个值(两个文本,一个图像)的字段集合。 当我将这些呈现到页面时,如下所示:

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

除非image字段为空,否则一切正常。 所以我试图建立一个典型的

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

似乎无论如何,除非image字段具有值,否则出现以下错误

Twig_Sandbox_SecurityError:不允许在“ Drupal \\ field_collection \\ Entity \\ FieldCollectionItem”对象上调用“ uri”方法

UPDATE

我还尝试了以下几种方式的“ | render”建议。

我最终检查了文件名是否为NULL,但是我发现这不是一种有效的解决方案,我仍然愿意征求建议。

{% if service.getFieldCollectionItem().field_sub_service_image.entity.filename %}
    <img src="{{file_url(service.getFieldCollectionItem().field_sub_service_image.entity.uri.value)}}" />
{% endif %}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM