2016-12-28 2 views
0

Ich versuche herauszufinden, wie man den Pfad zu einem Bild von einer Entität in Drupal 8 bekommen kann. Ich hatte gedacht, dass get() -> value es tun würde, aber das gibt nur eine leere Zeichenfolge zurück .Drupal 8 Bild Feld Wert

Ich habe eine Testfunktion:

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; 
} 

einige Profil-ID 3 wird angenommen, dass zwei Felder hat field_first_name und field_mugshot. Wenn ich rufe:

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

Der erste Anruf richtig zeigt den ersten Namen im Nachrichtenbereich, aber die zweite gibt nur eine leere Zeichenkette. Ich brauche einen Pfad zum Bild, damit ich etwas an seinem Inhalt verarbeiten kann.

Antwort

1

können Sie die Folowing Methoden verwenden, um die uri oder die URL zu erhalten:

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

Dies liegt daran, Wert() Methode sollte den Wert des Feldes (auch bekannt als ein fid) zurückzukehren, Feld, das ein Unternehmen ist Referenz in diesem Fall.

+0

Das bringt mir genau das, was ich brauchte. Vielen Dank. – PhotoKevin