在Drupal8中,要在控制器中渲染一个块,可以按照以下步骤进行操作:
namespace Drupal\my_module\Controller;
use Drupal\Core\Controller\ControllerBase;
class CustomController extends ControllerBase {
public function renderBlock() {
$block = \Drupal::service('plugin.manager.block')->createInstance('my_custom_block_id');
$render_array = \Drupal::entityTypeManager()
->getViewBuilder('block')
->view($block);
return $render_array;
}
}
在上述代码中,"my_custom_block_id"是你要渲染的块的ID,可以根据实际情况进行替换。
<div class="custom-block">
{{ content }}
</div>
my_module.custom_controller_render_block:
path: '/custom-controller/render-block'
defaults:
_controller: '\Drupal\my_module\Controller\CustomController::renderBlock'
_title: 'Render Block'
requirements:
_permission: 'access content'
现在,你可以通过访问"/custom-controller/render-block"路径来渲染你的块。该路径将调用"CustomController"类中的"renderBlock"方法,并返回块的渲染数组。
注意:以上步骤是在Drupal8中使用控制器渲染块的一种方法,但也可以使用其他方法来实现相同的效果。
领取专属 10元无门槛券
手把手带您无忧上云