0

最近、スクリプトを使用して約700の属性を作成しましたが、すべての属性はバックエンドで正常に表示されます。しかし、インデックスを再作成すると、次のエラーが発生します。

例外'PDOException'とメッセージ'SQLSTATE[42S22]:列が見つかりません: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();
}

for ループで ID をハードコーディングするのではなく、Magento コレクション モデルを使用して各インデックスをロードすることもできます。

/* @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 に答える