当我在使用
$collection->getSelect()->group('entity_id')
Run Code Online (Sandbox Code Playgroud)
要么
$collection->groupByAttribute('entity_id')
Run Code Online (Sandbox Code Playgroud)
它打破了getSelectCountSql,我得到1条记录和1页.Magento
$countSelect->columns('COUNT(DISTINCT e.entity_id)');
Run Code Online (Sandbox Code Playgroud)
有办法解决吗?
我碰到它,同时重写Mage_Adminhtml_Block_Catalog_Product_Grid的_prepareCollection
谢谢
小智 28
我更新了lib/Varien/Data/Collection/Db.php文件以允许这个,因为我必须让它工作.你必须跟踪这个升级,但它的工作原理.
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);
// Count doesn't work with group by columns keep the group by
if(count($this->getSelect()->getPart(Zend_Db_Select::GROUP)) > 0) {
$countSelect->reset(Zend_Db_Select::GROUP);
$countSelect->distinct(true);
$group = $this->getSelect()->getPart(Zend_Db_Select::GROUP);
$countSelect->columns("COUNT(DISTINCT ".implode(", ", $group).")");
} else {
$countSelect->columns('COUNT(*)');
}
return $countSelect;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
9934 次 |
最近记录: |