Как программно напечатать изображение поля alt или заголовка в пользовательском блоке?


Я хочу распечатать файл изображения поля alt или заголовка в пользовательском модуле Drupal 8. Я загружаю файловую сущность use Drupal\file\Entity\File; Я проверил core/modules/file/src/Entity/File.php все общедоступные функции, но не получил ни одной функции, которая возвращала бы заголовок или альтернативный текст.

$graph_data = Paragraph::load($graph['target_id']);
$output .= '<div class="swiper-slide">';
$output .= '<div class="slide-inner">';
foreach ($graph_data->field_slider_image as $item) {
 $title_img =    "Need image title here";
if ($item->entity) {
$slide_uri = $item->entity->getFileUri();
$url = ImageStyle::load('orignal')->buildUrl($slide_uri);
$output .= '<div class="col-md-6"><img src="'.$url.'" class="img-responsive"><h2>'.$title_img.'</h2></div>';  
}
}

Пожалуйста, кто-нибудь подскажет идею?

Спасибо

 2
Author: Pankaj Yogi, 2019-01-21

2 answers

Вы можете загрузить узел, а затем получить идентификатор цели абзаца. Позже вы можете загрузить целевой идентификатор абзаца, а затем получить все атрибуты изображения.

use Drupal\paragraphs\Entity\Paragraph; 
use Drupal\node\Entity\Node;

$node = Node::load($nid);
$paragraph_field = $node->get("field_paragraph")->getValue();
$paragraph = Paragraph::load($paragraph_field[0]['target_id']);
$image_alt = $paragraph->my_image_field->alt;
$image_title= $paragraph->my_image_field->title;
 4
Author: Shreya Shetty, 2019-01-22 06:29:51

Эта информация хранится не в сущности файла, а в поле изображения, прикрепленном к вашей исходной сущности (например, к вашему узлу)

Таким образом, вы могли бы сделать что-то вроде:

$node->my_image_field->alt
$node->my_image_field->title

И это даст вам alt/заголовок

 2
Author: Leigh, 2019-01-21 13:35:37