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