0

lib / Varien / Data / Collection / Db.phpには、すべてのMagentoコレクションに継承されるgetSelectCountSql()メソッドがあります。このメソッドでは、Selectオブジェクトが複製され、コレクションをロードせずに、代わりに軽量のSelectを使用してDBをクエリするコレクションアイテムのCOUNT値を取得するために特別に使用されるように準備されます。

準備は、選択の不要な部分とCOUNTの結果に影響を与える可能性のある部分をリセットすることによって行われます。コードは次のとおりです。

public function getSelectCountSql()
{   
    $this->_renderFilters();
    $countSelect = clone $this->getSelect();
    $countSelect->reset(Zend_Db_Select::ORDER);
    $countSelect->reset(Zend_Db_Select::LIMIT_COUNT);
    $countSelect->reset(Zend_Db_Select::LIMIT_OFFSET);
    $countSelect->reset(Zend_Db_Select::COLUMNS);
    ...

$countSelect->reset(Zend_Db_Select::GROUP);知りたいのですが、Magentoのエンジニアが他のパーツと一緒に含めなかった本当の理由があります。

Magentoはリビジョンごとにこの問題に対処していないようで、これがバグであると確信していたので、間違っているのではないでしょうか。リセットパーツリストにグループパーツを含めない理由を誰かが説明していただければ幸いです。

PSこれはこの質問の複製ではありません。修正を追加する方法を知っています。Magentoのエンジニアが最初から修正を行わなかった理由(存在する場合)を説明し、問題を無視し続けたいと思います。

4

2 に答える 2

0

これは実際にはバグではありません、私は私の仮定で間違っていました。

于 2013-11-28T16:54:23.223 に答える
0

これは私のMagentoCE1.9.2.2で修正されています(どのバージョンに最初に含まれていたかはわかりませんが)。

于 2015-12-07T23:27:44.053 に答える