Drupal → Получить экземпляр класса BlockContent по машинному имени его конфига
Дано — машинное имя конфига контентного блока, добавленного на странице admin/structure/block
.
Задача — получить id контентного блока и его экземпляр класса BlockContent
.
Решение на примере блока с именем page_header
:
$block = Block::load('page_header'); /** @var BlockInterface $block */ $block_plugin = $block->getPlugin(); /** @var BlockPluginInterface $block_plugin */ $block_content_uuid = $block_plugin->getDerivativeId(); $block_content_id = \Drupal::service('block_content.uuid_lookup')->get($block_content_uuid); $block_content = BlockContent::load($block_content_id); /** @var BlockContentInterface $block_content */
Комментарии
Через репозитрий энтитей можно загружать сущности по UUID.
@Ch, видел такой вариант, остановило то, что в ядре при выводе блока используется именно вариант с uuid_lookup и мне на самом деле нужен был только id блока, а не его экземпляр :)
Оставить комментарий