मैं getChildHtml () कॉल पर डेटा पास करने में सक्षम होना चाहता हूं। इसका कारण है, ब्लॉक का उत्पादन एक उत्पाद प्रकार पर निर्भर है। इसलिए मैं उत्पाद को getChildHtml में पास करना चाहता हूं ताकि वह आउटपुट पर निर्णय ले सके।
मैं अंदर ऐसा कर रहा हूं template/checkout/cart/item/default.phtml
।
आदर्श रूप में, कॉल ऐसा लगेगा:
echo $this->getChildHtml('child_block_name', $_item);
फिर मेरा ब्लॉक आइटम से उत्पाद प्रकार प्राप्त कर सकता है और सही आउटपुट प्रदर्शित कर सकता है।
चूंकि इस डेटा को पारित करना निश्चित रूप से संभव नहीं है getChildHtml
- कोर ब्लॉक को फिर से लिखने के बिना इस प्रकार के व्यवहार को कैसे प्राप्त किया जा सकता है
वर्तमान में मेरे दो समाधान इस प्रकार हैं (न ही बहुत आकर्षक):
1 - एक हेल्पर बनाएं और एक ब्लॉक और टेम्पलेट इसे अला रेंडर करने देने के बजाय सहायक के माध्यम से HTML आउटपुट तक पहुंचें $this->helper('my_module')->getItemHtml($_item);
2 - चाइल्ड ब्लॉक और सेटडेटा को टेम्प्लेट के अंदर एक्सेस करें:
$this->getChild('child_name')->setData('item', $_item);
echo $this->getChildHtml('child_name')
मुझे लगता है कि मैगेंटो वास्तुकला के संदर्भ में, नंबर 2 दो बुराइयों का कम है, लेकिन यह एक टेम्प्लेट के अंदर दिख रहा है।