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