getChildHtml () 호출에 데이터를 전달할 수 있기를 원합니다. 그 이유는 블록의 출력이 제품 유형에 따라 달라지기 때문입니다. 그래서 출력을 결정할 수 있도록 제품을 getChildHtml에 전달하고 싶습니다.
나는 이것을 안으로하고있다 template/checkout/cart/item/default.phtml
.
이상적으로는 다음과 같이 호출됩니다.
echo $this->getChildHtml('child_block_name', $_item);
그런 다음 내 블록은 항목에서 제품 유형을 가져 와서 올바른 출력을 표시 할 수 있습니다.
이 데이터를 전달할 수는 없으므로 getChildHtml
코어 블록을 다시 작성하지 않고도 이러한 유형의 동작을 수행 할 수있는 방법은 무엇입니까?
현재 가지고있는 두 가지 솔루션은 다음과 같습니다 (매우 매력적이지 않음).
1-블록과 템플릿이 ala로 렌더링되는 대신 도우미를 만들고 도우미를 통해 html 출력에 액세스하십시오. $this->helper('my_module')->getItemHtml($_item);
2-템플릿 내에서 하위 블록에 액세스하고 setData를 설정하십시오.
$this->getChild('child_name')->setData('item', $_item);
echo $this->getChildHtml('child_name')
Magento 아키텍처의 관점에서 볼 때 2 번은 두 가지 악한 것보다 적지 만 템플릿 내부는 못 생겼습니다.