मुझे मूल ब्लॉक नाम या लेआउट 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);
}