Дано — машинное имя конфига контентного блока, добавленного на странице 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 */
Написанное актуально для
Drupal 8
Комментарии
Через репозитрий энтитей можно загружать сущности по UUID.
@Ch, видел такой вариант, остановило то, что в ядре при выводе блока используется именно вариант с uuid_lookup и мне на самом деле нужен был только id блока, а не его экземпляр :)
Добавить комментарий