0

我最近通过脚本创建了大约 700 个属性,所有属性在后端看起来都很好。但是当我重新索引时,我收到以下错误:

带有消息“SQLSTATE [42S22] 的异常“PDOException”:未找到列:1054 /lib/Zend/Db/Statement/Pdo.php:228 中“字段列表”中的未知列“e.additional_information_s”

注意:此属性存在于数据库(eav_attribtue)表中。

我非常感谢您的建议。

4

1 回答 1

1

以下将重新索引每个索引。

for ($i = 1; $i <= 9; $i++) {
    $process = Mage::getModel('index/process')->load($i);
    $process->reindexAll();
}

您还可以使用 Magento 集合模型来加载每个索引,而不是在 for 循环中对 id 进行硬编码。

/* @var $indexCollection Mage_Index_Model_Resource_Process_Collection */
$indexCollection = Mage::getModel('index/process')->getCollection();
foreach ($indexCollection as $index) {
    /* @var $index Mage_Index_Model_Process */
    $index->reindexAll();
}

但是,如果您只想重新索引 id 为 2 的价格

$process = Mage::getModel('index/process')->load(2);
$process->reindexAll();

您还可以按如下方式调用函数 getProcessByCode:

$process = Mage::getModel('index/indexer')->getProcessByCode('catalog_product_price');
$process->reindexAll();
于 2016-11-25T07:31:28.980 回答