Ebeveyn bloğu adı veya Magento 2 düzenini kullanarak tüm çocuk denetleyicisini engellemem gerekiyor.
Şimdiden teşekkürler.
Ebeveyn bloğu adı veya Magento 2 düzenini kullanarak tüm çocuk denetleyicisini engellemem gerekiyor.
Şimdiden teşekkürler.
Yanıtlar:
Denetleyicinizin, bloğunuzun ve alt bloklarının çıktığı düzeni yükleyen aynı olduğundan emin olun.
Magento \ Backend \ App \ Action \ Context kullanın; Magento \ Framework \ View \ Result \ PageFactory kullanın; class Edit, \ Magento \ Backend \ App \ Action klasörünü genişletir { korumalı $ sonuçPageFactory; kamu işlevi __construct ( Bağlam $ bağlam, PageFactory $ sonuçPageFactory ) { $ this-> sonuçPageFactory = $ sonuçPageFactory; üst :: __ yapı ($ bağlamı); } $ sonuçPage = $ this-> sonuçPageFactory-> create (); $ blockInstance = $ sonuçPage-> getLayout () -> getBlock ('your.block.name'); $ childBlocks = $ blockInstance-> getChildNames (); foreach ($ childBlocks $ blockName olarak) { $ block = $ sonuçPage-> getLayout () -> getBlock ($ blockName); } }
$blockInstance->getChildNames();
burada getChildNames () demek?
Tüm çocuk bloklarını bu şekilde alabilirsiniz.
$allblocks = $block->getChildNames();
foreach($allblocks as $blocks){
$child_block = $this->resultPageFactory->create()->getLayout()->getBlock($blocks);
}