0

lib/Varien/Data/Collection/Db.php中有一个方法getSelectCountSql()由所有 Magento 集合继承。在此方法中,Select 对象被克隆,并准备专门用于获取集合项的 COUNT 值,而不是加载集合,而是使用轻量级 Select 查询数据库。

准备工作是通过重置 Select 的不必要部分和可能影响 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);
    ...

我想知道,Magento 工程师没有$countSelect->reset(Zend_Db_Select::GROUP);与其他部件一起包含的真正原因是什么。

Magento 似乎没有从一个版本到另一个版本来解决这个问题,我很确定这是一个错误,所以也许我错了?如果有人能解释将 GROUP 部分包含在重置部分列表中的原因,我将不胜感激。

PS这不是这个问题的重复,我知道如何添加修复程序,我只是想得到一个解释(如果存在的话)为什么Magento工程师从一开始就没有这样做,并继续忽略这个问题。

4

2 回答 2

0

这不是一个真正的错误,我的假设是错误的。

于 2013-11-28T16:54:23.223 回答
0

这已在我的 Magento CE 1.9.2.2 中修复(尽管我不确定哪个版本首先包含它)。

于 2015-12-07T23:27:44.053 回答