📅  最后修改于: 2023-12-03 15:00:32.711000             🧑  作者: Mango
在 Drupal 8 中,媒体图像是一种新的实体类型,它可以作为一个单独的实体来保存和管理图像文件。在主题开发过程中,有时我们需要获取媒体图像的 URI,以便将其插入到 HTML 中或者在 Twig 模板中使用。
以下是获取媒体图像 URI 的两种方法:
Drupal 8 提供了一个非常方便的函数 file_url_transform_relative()
,用于将文件的绝对路径转换为相对路径。因此,我们可以利用此函数来获取媒体图像的 URI。
<?php
// 获取媒体图像实体对象
$media = \Drupal\media\Entity\Media::load($media_id);
// 获取媒体图像的文件对象
$file = $media->get('field_media_image')->entity;
// 获取媒体图像的 URI
$uri = file_url_transform_relative($file->getFileUri());
load()
方法获取媒体图像实体对象。get()
方法获取媒体图像的文件实体对象。getFileUri()
方法获取文件对象的 URI,并通过 file_url_transform_relative()
将其转换为相对路径。在 Twig 模板中,我们可以使用 file_url()
函数获取文件的 URI。因此,我们可以在媒体图像的 Twig 模板中直接调用此函数,获取媒体图像的 URI。
<img src="{{ file_url(media.field_media_image.entity.uri.value) }}" alt="{{ media.name[0].value }}">
media.field_media_image.entity.uri
获取媒体图像的 URI 值。file_url()
函数,获取文件的 URI。src
属性插入到 img
标签中,并使用 media.name[0].value
作为 alt
属性。以上就是获取 Drupal 8 媒体图像 URI 的两种方法。我们可以根据实际需要选择其中一种方法进行使用,以便更好地管理和使用媒体图像。