1

我试图弄清楚如何从 Drupal 8 中的实体获取图像的路径。我曾认为 get()->value 会做到这一点,但这只是返回一个空白字符串。

我有一个测试功能:

function getValueTest ($profile_id, $field)
{
   $profile_storage = \Drupal::entityManager()->getStorage('profile'); 
   $profile = $profile_storage->load($profile_id);
   if ($profile != null)
   {
      if ($profile->hasField ($field))
      {
         return $profile->get ($field)->value;
      }
   }

   return "No field" . $field;
}

假设某个配置文件 id 为 3,它有两个字段 field_first_name 和 field_mugshot。如果我打电话:

dpm ($this->getValueTest (3, 'field_first_name'));
dpm ($this->getValueTest (3, 'field_mugshot'));

第一次调用在消息区域中正确显示了名字,但第二次只给出了一个空白字符串。我需要图像的路径,以便对其内容进行一些处理。

4

1 回答 1

4

您可以使用以下方法获取 uri 或 url:

$entity->get('field_image')->entity->getFileUri();
$entity->get('field_image')->entity->url();

这是因为 value() 方法应该返回字段(又名 fid)的值,在这种情况下,该字段是一个实体引用。

于 2016-12-29T17:37:15.110 回答