$this->getLayout()->unsetBlock('your_block_name');
你需要确保的是,
- 具有指定名称的块应该存在于布局中!
- 这应该在
$this->loadLayout()
之前和之后执行$this->renderLayout()
。
为什么?因为$this->loadLayout()
它来自控制器内部实际上加载了与将在前端显示的页面相关的所有块。因此,如果在加载布局之前执行操作,它将无法工作,因为不存在相关布局。同样,如果你之后执行操作$this->renderLayout()
,那就太晚了!因为Magento已经在前端渲染了输出