我必须使用父块名称或布局Magento 2获取控制器中的所有子块。
提前致谢。
我必须使用父块名称或布局Magento 2获取控制器中的所有子块。
提前致谢。
Answers:
确保加载加载块及其子块退出的布局的控制器相同。
使用Magento \ Backend \ App \ Action \ Context;
使用Magento \ Framework \ View \ Result \ PageFactory;
类Edit扩展\ Magento \ Backend \ App \ Action
{
  受保护的$ resultPageFactory;
  公共功能__construct(
       上下文$ context,
       PageFactory $ resultPageFactory
  ){
       $ this-> resultPageFactory = $ resultPageFactory;
       父母:: __ construct($ context);
  }
  $ resultPage = $ this-> resultPageFactory-> create();
  $ blockInstance = $ resultPage-> getLayout()-> getBlock('your.block.name');
  $ childBlocks = $ blockInstance-> getChildNames();
  foreach($ childBlocks as $ blockName){
    $ block = $ resultPage-> getLayout()-> getBlock($ blockName);
  }
}
              $blockInstance->getChildNames();这里的getChildNames()是什么意思?
                    您可以像这样获得所有子块。
$allblocks = $block->getChildNames();
  foreach($allblocks as $blocks){
    $child_block = $this->resultPageFactory->create()->getLayout()->getBlock($blocks);
  }