Eu tenho que obter todos os filhos do bloco no controlador usando o nome do bloco pai ou o layout Magento 2.
Obrigado antecipadamente.
Eu tenho que obter todos os filhos do bloco no controlador usando o nome do bloco pai ou o layout Magento 2.
Obrigado antecipadamente.
Respostas:
Verifique se o seu controlador é o mesmo que carrega o layout no qual seu bloco e seus blocos filhos saem.
use Magento \ Backend \ App \ Action \ Context; use Magento \ Framework \ View \ Result \ PageFactory; A classe Edit estende \ Magento \ Backend \ App \ Action { protected $ resultPageFactory; função pública __construct ( Contexto $ context, PageFactory $ resultPageFactory ) { $ this-> resultPageFactory = $ resultPageFactory; parent :: __ construct ($ context); } $ resultPage = $ this-> resultPageFactory-> create (); $ blockInstance = $ resultPage-> getLayout () -> getBlock ('seu.block.nome'); $ childBlocks = $ blockInstance-> getChildNames (); foreach ($ childBlocks as $ blockName) { $ block = $ resultPage-> getLayout () -> getBlock ($ blockName); } }
$blockInstance->getChildNames();
aqui getChildNames () significa?
Você pode obter todos os blocos filhos como este.
$allblocks = $block->getChildNames();
foreach($allblocks as $blocks){
$child_block = $this->resultPageFactory->create()->getLayout()->getBlock($blocks);
}