문제

Magento 1.9.2.0에서 이상한 문제가있는

local.xml 파일이 있습니다 :

<?xml version="1.0"?>
<layout>
    <catalog_product_view>
        <reference name="root">
            <block type="core/template" name="leftmenu" as="leftmenu"
                   template="catalog/product/view/left.phtml />
        </reference>
    </catalog_product_view>
</layout>
.

내가하려고 할 때 : $this->getChildHtml('leftmenu'); var_dump를 렌더링하지 않으면 문자열 ''(0)

을 표시합니다.

그러나 참조를 콘텐츠로 변경하면 모든 HTML이지만 모든 HTML 아래에서 렌더링됩니다.

i를 루트로 변경하고 $this->getChildHtml('leftmenu');$this->getLayout()->getBlock('leftmenu')->toHtml();로 변경하면해야합니다. 왜 그렇게 렌더링 할 것입니다 ... 왜 그런지 알아보십시오.

감사합니다

도움이 되었습니까?

해결책 2

ok이므로 답변이 - CATALOG_PRODUCT_VIEW는 루트를 사용하여 블록을 만들지 않아야합니다.

<?xml version="1.0" ?>
<layout>
    <catalog_product_view>
        <reference name="product.info">
            <block type="core/template" name="product.left.menu" as="product.left.menu"
                   template="catalog/product/view/left.phtml" />
            <block type="core/template" name="product.tabs" as="product.tabs"
                   template="catalog/product/view/tabs/tabs.phtml" />
            <block type="core/template" name="product.related" as="product.related"
                   template="catalog/product/list/related.phtml" />
        </reference>
    </catalog_product_view>
</layout>
.

다른 팁

아래 코드 사용

<?xml version="1.0"?>
<layout>
    <catalog_product_view>
        <reference name="content">
            <block type="core/template" name="leftmenu" as="leftmenu"
                   template="catalog/product/view/left.phtml />
        </reference>
    </catalog_product_view>
</layout>
.

아래에서 사용하여 전화

echo $this->getChildHtml('leftmenu');
.

자세한 정보 여기

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 magento.stackexchange
scroll top