1

ヴァリエングリッド機能を使用してカスタム製品グリッドを作成し、注文フォームとして使用しています。基本的に、製品名、製品価格、およびユーザーが希望する製品の金額を入力するための入力フィールドがあります。

何千もの製品があり、ユーザーが選択したものの現在の小計を提供する必要があります。

私が得た最も近いものは、Grid.phpに以下を追加することです...

   protected function _afterLoadCollection()
{
    $collection = $this->getCollection()->load();
    $total = 0;
    if ($collection) {
            foreach($collection as $item)  {
                    $itemPrice = $item->getPrice();
                    $itemQty = $item->getQty();
                    $total = $total + ($itemPrice * $itemQty);
            }
       echo $total;
    }
}

ただし、結果は現在の制限の影響を受けるため、現在のページの合計のみになります。

これを回避する方法、または2つの列の現在の合計を取得するためのより良い方法はありますか?

事前のおかげで、私はこれに何日も立ち往生しています!

4

1 に答える 1

0

これを試して、コレクションの補数をクリアし、最初のページに大きな制限を設定できます

$_productCollection = $this->getLoadedProductCollection();
$_productCollection->clear();
$_productCollection->setPage(1,99999);
于 2012-11-22T19:49:30.213 に答える