Drupal中如何从Paragraph的Media-Document字段获取文件链接?
在Drupal Twig模板中获取Paragraph里Media Document字段的文件下载链接
你的问题核心是:field_item_file是关联Media实体的字段,你要的文件下载链接是Media实体内部关联的File实体的地址,直接调用Media实体的url()拿到的是Media自身的页面URL(未配置时可能为空),并非文件的下载链接。
正确的写法是先从Media实体中取出关联的File实体,再获取它的下载链接:
{% block paragraph %} {% if paragraph.status.value %} Title: {{ paragraph.field_item_title.value }}<br> Description: {{ paragraph.field_item_description.value }}<br> {% if paragraph.field_item_file.entity %} {% set file_entity = paragraph.field_item_file.entity.field_media_document.entity %} {% if file_entity %} URL: <a href="{{ file_entity.url }}">{{ file_entity.filename.value }}</a> {% endif %} {% endif %} {% endif %} {% endblock paragraph %}
关键说明:
paragraph.field_item_file.entity获取到的是关联的Document类型Media实体field_media_document是Drupal默认Document类型Media自带的File字段,若你自定义了Media字段名,替换成对应名称即可file_entity.url直接返回文件的下载链接,file_entity.filename.value可用来显示文件名
内容的提问来源于stack exchange,提问作者Barney Gumble
相关产品推荐
相关产品推荐

