У меня есть коллекция полей, которая принимает три значения (два текста, одно изображение). Когда я сделаю их на странице следующим образом:Проверьте, существует ли поле изображения коллекции полей - пустое поле создает ошибку
{% 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: Calling "uri" method on a "Drupal\field_collection\Entity\FieldCollectionItem" object is not allowed
UPDATE
Я также попробовал предложение «| render» ниже в пара мод.
Похоже, вы должны проверить, обработанное поле вместо этого, не уверены, если он относится к этому, хотя: https://www.drupaleasy.com/quicktips/checking-existence-field-value-twig –
Я попытался | рендеринг в соответствии с вашей статьей, к сожалению, он возвращает свою собственную ошибку или WSOD – NicholasByDesign