Câu trả lời:
Hãy chắc chắn rằng bộ điều khiển của bạn giống với tải bố cục trong đó khối của bạn và khối con của nó thoát ra.
sử dụng Magento \ Backend \ App \ Action \ Context;
sử dụng Magento \ Framework \ View \ result \ PageFactory;
lớp Chỉnh sửa mở rộng \ Magento \ Backend \ App \ Action
{
được bảo vệ $ resultPageFactory;
chức năng công cộng __construct (
Bối cảnh $ bối cảnh,
PageFactory $ resultPageFactory
) {
$ this-> resultPageFactory = $ resultPageFactory;
cha mẹ :: __ xây dựng ($ bối cảnh);
}
$ resultPage = $ this-> resultPageFactory-> create ();
$ blockInstance = $ resultPage-> getLayout () -> getBlock ('your.block.name');
$ childBlocks = $ blockInstance-> getChildNames ();
foreach ($ childBlocks là $ blockName) {
$ block = $ resultPage-> getLayout () -> getBlock ($ blockName);
}
}
$blockInstance->getChildNames();ở đây getChildNames () nghĩa là gì?
Bạn có thể nhận được tất cả các khối con như thế này.
$allblocks = $block->getChildNames();
foreach($allblocks as $blocks){
$child_block = $this->resultPageFactory->create()->getLayout()->getBlock($blocks);
}