我创建了一个自定义块 "admin/structure/block/block-content “。

如何通过代码从自定义块中获取字段?

我尝试过 block_load 函数和 entity_load 但没有得到预期的结果。

请帮我解决它。

$block =\Drupal::entityManager()->getStorage('block')->load($block_id);

$block_view =\Drupal::entityManager()->getViewBuilder('block')->view($block);

http://i.stack.imgur.com/fOuSW.png

谢谢

最佳答案

您的解决方案几乎是正确的。 Drupal 8 中的自定义块具有不同的实体名称。请参阅下面的示例。

<?php

/**
 * Implements hook_preprocess_html().
 */
function my_module_preprocess_html(&$variables) {
  // You can do some logic like showing your custom block on certain pages or
  // under certain conditions.
  if (\Drupal::routeMatch()->getRouteName() == 'some.path') {
    $block = \Drupal::entityManager()->getStorage('block_content')->load(1);
    $block_view = \Drupal::entityManager()->getViewBuilder('block_content')->view($block);
    $variables['page']['sidebar_first']['custom_block'] = $block_view;
  }
}

关于drupal-8 - 如何在 drupal 8 中获取自定义块内容,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24732249/

10-14 19:22