2017-01-19 12 views
0

У меня есть коллекция полей, которая принимает три значения (два текста, одно изображение). Когда я сделаю их на странице следующим образом:Проверьте, существует ли поле изображения коллекции полей - пустое поле создает ошибку

{% 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» ниже в пара мод.

+0

Похоже, вы должны проверить, обработанное поле вместо этого, не уверены, если он относится к этому, хотя: https://www.drupaleasy.com/quicktips/checking-existence-field-value-twig –

+0

Я попытался | рендеринг в соответствии с вашей статьей, к сожалению, он возвращает свою собственную ошибку или WSOD – NicholasByDesign

ответ

0

Я закончил проверку, было ли имя файла NULL, однако я не считаю это красноречивым решением, и я по-прежнему открыт для предложений.

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

 Смежные вопросы

  • Нет связанных вопросов^_^