1

私の問題は、magento の高度な検索で結果が返されないことです (通常の検索では返されます)。ダンプしたら

$this->getLoadedProductCollection()

私のテンプレートでは、「null」を返します。そこで、「app/code/local/Mage/CatalogSearch/Block/Advanced/Result.php」でコレクションを高度な検索テンプレート/ビューに設定するクラスを調べたところ、次のメソッドが見つかりました。

public function setListCollection() {
    $this->getChild('search_result_list')->setCollection($this->_getProductCollection());
}

ダンプしたら

$this->_getProductCollection();

検索クエリに一致するすべての製品を取得します。しかし、なぜ最初のメソッドが null を返すのでしょうか? 何も思いつきません。

ご協力いただきありがとうございます。

4

1 に答える 1

1

製品がある場合は、ブロックが表示されていない可能性がありますsearch_result_list
レイアウト ファイルcatalogsearch.xmlをチェックして、ハンドルがどのように<catalogsearch_advanced_result>見えるかを確認します。という名前のブロックが内部にあるはずsearch_result_listです。デフォルトのテーマのものと比較してください。簡単にするために、ここでは次のようになります。

<catalogsearch_advanced_result translate="label">
    <label>Advanced Search Result</label>
    <update handle="page_two_columns_right" />
    <!-- Mage_Catalogsearch -->
    <reference name="root">
        <action method="setTemplate"><template>page/2columns-right.phtml</template></action>
    </reference>
    <reference name="content">
        <block type="catalogsearch/advanced_result" name="catalogsearch_advanced_result" template="catalogsearch/advanced/result.phtml">
            <block type="catalog/product_list" name="search_result_list" template="catalog/product/list.phtml">
                <block type="catalog/product_list_toolbar" name="product_list_toolbar" template="catalog/product/list/toolbar.phtml">
                    <block type="page/html_pager" name="product_list_toolbar_pager"/>
                </block>
                <action method="addColumnCountLayoutDepend"><layout>empty</layout><count>6</count></action>
                <action method="addColumnCountLayoutDepend"><layout>one_column</layout><count>5</count></action>
                <action method="addColumnCountLayoutDepend"><layout>two_columns_left</layout><count>4</count></action>
                <action method="addColumnCountLayoutDepend"><layout>two_columns_right</layout><count>4</count></action>
                <action method="addColumnCountLayoutDepend"><layout>three_columns</layout><count>3</count></action>
                <action method="setToolbarBlockName"><name>product_list_toolbar</name></action>
            </block>
            <action method="setListOrders"/>
            <action method="setListModes"/>
            <action method="setListCollection"/>
        </block>
    </reference>
</catalogsearch_advanced_result>
于 2013-09-03T08:45:54.457 に答える