0

コントローラー内に 2 つのメソッドがあり、さまざまな ajax 更新用の html を取得するために呼び出します。

    protected function _getDemoShippingMethodsHtml()
    {
        $layout = $this->getLayout();
        $update = $layout->getUpdate();
        $update->load('checkout_onepage_demoshippingmethod');
        $layout->generateXml();
        $layout->generateBlocks();
        $output = $layout->getOutput();

        return $output;
    }

    protected function _getSelectedDealerHtml()
    {
        $layout = $this->getLayout();
        $update = $layout->getUpdate();
        $update->load('checkout_onepage_selecteddealer');
        $layout->generateXml();
        $layout->generateBlocks();
        $output = $layout->getOutput();

        return $output;
    }

コントローラーへの1回のリクエスト中に、これらのメソッドの1つだけを呼び出すと、期待どおりにブロックがロードされます。問題は、1 つの要求でこれらの関数の両方を呼び出そうとするところにあります。どちらのメソッドが最初に呼び出されても、予想される html が出力され、2 番目のメソッド呼び出しでは、最初のメソッドとまったく同じ html が出力されます。

4

2 に答える 2

0

使用されるブロック クラスで、空の疑似コンストラクターで保護された関数 _construct() {} を作成します。

于 2013-04-10T04:31:51.030 に答える
-1

プログラムでクリーン キャッシュを使用してみてください Mage::app()->cleanCache();

マジェントのキャッシュをクリアする

于 2013-04-10T01:35:27.247 に答える