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);
}