Je dois obtenir tous les blocs enfants dans le contrôleur en utilisant le nom du bloc parent ou la disposition Magento 2.
Merci d'avance.
Je dois obtenir tous les blocs enfants dans le contrôleur en utilisant le nom du bloc parent ou la disposition Magento 2.
Merci d'avance.
Réponses:
Assurez-vous que votre contrôleur est le même qui charge la disposition dans laquelle se termine votre bloc et ses blocs enfants.
utilisez Magento \ Backend \ App \ Action \ Context; utilisez Magento \ Framework \ View \ Result \ PageFactory; La classe Edit étend \ Magento \ Backend \ App \ Action { protected $ resultPageFactory; fonction publique __construct ( Context $ context, PageFactory $ resultPageFactory ) { $ this-> resultPageFactory = $ resultPageFactory; parent :: __ 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();
ici getChildNames () signifie?
Vous pouvez obtenir tous les blocs enfants comme celui-ci.
$allblocks = $block->getChildNames();
foreach($allblocks as $blocks){
$child_block = $this->resultPageFactory->create()->getLayout()->getBlock($blocks);
}