📜  drupal 8 获取媒体图像 uri (1)

📅  最后修改于: 2023-12-03 15:00:32.711000             🧑  作者: Mango

Drupal 8 获取媒体图像 URI

在 Drupal 8 中,媒体图像是一种新的实体类型,它可以作为一个单独的实体来保存和管理图像文件。在主题开发过程中,有时我们需要获取媒体图像的 URI,以便将其插入到 HTML 中或者在 Twig 模板中使用。

以下是获取媒体图像 URI 的两种方法:

方法一:使用 Drupal 对象

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 模板

在 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。
  • 最后,将 URI 值作为 src 属性插入到 img 标签中,并使用 media.name[0].value 作为 alt 属性。

以上就是获取 Drupal 8 媒体图像 URI 的两种方法。我们可以根据实际需要选择其中一种方法进行使用,以便更好地管理和使用媒体图像。