Drupal 8 Изображение Значение поля
Я пытаюсь выяснить, как получить путь к изображению от сущности в 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;
}
Предположим, что некоторый идентификатор профиля 3 имеет два поля field_first_name и field_mugshot. Если я позвоню:
dpm ($this->getValueTest (3, 'field_first_name'));
dpm ($this->getValueTest (3, 'field_mugshot'));
Первый вызов правильно отображает имя в области сообщений, а второй просто дает пустую строку. Мне нужен путь к изображению, чтобы я мог обработать его содержимое.
1 ответ
Решение
Вы можете использовать следующие методы, чтобы получить URI или URL:
$entity->get('field_image')->entity->getFileUri();
$entity->get('field_image')->entity->url();
Это связано с тем, что метод value() должен возвращать значение поля (aka a fid), поле, которое в данном случае является ссылкой на сущность.