1

我有一个正在使用的 magento 安装catalog_product_entity,而其他人catalog_product_flat_1在查询期间使用它来检索产品集合。

为什么是这样?

4

1 回答 1

3

您可以配置 Magento 是否使用平面表或实体进行集合。检查Use Flat Catalog Product下的 Magento 管理部分System->Config->Catalog: Frontend。更改此设置时,会刷新 Magento 缓存存储,因为缓存了管理配置。索引失效也可能在这里发挥作用,我不确定 Magento 是否在不是最新的情况下使用平面表。

Buttle Butkus报告说,可能需要将其切换到NoYes再次切换才能激活它。

如果您在管理区域中加载集合,则不使用平面表。

这是确定的Mage_Catalog_Model_Resource_Product_Collection::_construct()

/**
 * Initialize resources
 *
 */
protected function _construct()
{
    if ($this->isEnabledFlat()) {
        $this->_init('catalog/product', 'catalog/product_flat');
    }
    else {
        $this->_init('catalog/product');
    }
    $this->_initTables();
}

/**
* Retrieve is flat enabled flag
* Return alvays false if magento run admin
*
* @return bool
*/
public function isEnabledFlat()
{
if (Mage::app()->getStore()->isAdmin()) {
    return false;
}
if (!isset($this->_flatEnabled[$this->getStoreId()])) {
    $this->_flatEnabled[$this->getStoreId()] = $this->getFlatHelper()
        ->isEnabled($this->getStoreId());
}
    return $this->_flatEnabled[$this->getStoreId()];
}
于 2013-06-07T19:34:09.127 回答