मुझे मूल ब्लॉक नाम या लेआउट Magento 2 का उपयोग करके सभी बच्चों को नियंत्रक में लाना है।
अग्रिम धन्यवाद।
मुझे मूल ब्लॉक नाम या लेआउट Magento 2 का उपयोग करके सभी बच्चों को नियंत्रक में लाना है।
अग्रिम धन्यवाद।
जवाबों:
सुनिश्चित करें कि आपका नियंत्रक वही है जो उस लेआउट को लोड करता है जिसमें आपका ब्लॉक और उसका बच्चा ब्लॉक बाहर निकलता है।
Magento \ Backend \ App \ Action \ Context का उपयोग करें;
Magento \ Framework \ View \ Result \ PageFactory का उपयोग करें;
वर्ग संपादित करें \ Magento \ Backend \ App \ Action का विस्तार करता है
{
संरक्षित $ resultPageFactory;
सार्वजनिक समारोह __construct (
प्रसंग $ संदर्भ,
PageFactory $ resultPageFactory
) {
$ ये-> resultPageFactory = $ resultPageFactory;
माता-पिता :: __ निर्माण ($ संदर्भ);
}
$ resultPage = $ this-> resultPageFactory-> create ();
$ blockInstance = $ resultPage-> getLayout () -> getBlock ('your.block.name');
$ चाइल्डब्लॉक = $ ब्लॉक इनस्टांस-> getChildNames ();
foreach ($ blockName के रूप में $ चाइल्डब्लॉक) {
$ ब्लॉक = $ resultPage-> getLayout () -> getBlock ($ blockName);
}
}
$blockInstance->getChildNames();यहाँ getChildNames () का अर्थ है?
आप इस तरह से सभी बाल ब्लॉक प्राप्त कर सकते हैं।
$allblocks = $block->getChildNames();
foreach($allblocks as $blocks){
$child_block = $this->resultPageFactory->create()->getLayout()->getBlock($blocks);
}