2016-12-28 53 views
0

我想弄清楚如何從Drupal 8中的實體獲取圖像的路徑。我曾經想過get() - > value會這樣做,但那只是返回一個空字符串。Drupal 8 Image字段值

我有一個測試功能:

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')); 

第一次調用正確的消息區域顯示的第一個名字,但第二隻給出了一個空字符串。我需要一個路徑圖像,所以我可以對其內容進行一些處理。

回答

1

可以使用如下因素的方法來得到URI或網址:

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

這是因爲value()方法應該返回場(又名一個FID)的值,場這是一個實體在這種情況下的參考。

+0

這正是我所需要的。謝謝。 – PhotoKevin