我似乎在Magento上有索引问题。所有可用的索引索引都很好,除了一个:
Sm Shopby
通过以下错误编制索引时,我无法确定问题是什么。
var xhr = new XMLHttpRequest();
xhr.open('GET', 'https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css');
xhr.addEventListener('load', function() {
console.log('style loaded', this.responseText);
});
xhr.addEventListener('error', function(e) {
console.error('style load failed');
});
xhr.send();
我查看了Pdo.php文件,但我并不是百分之百确定我追求的是什么。我尝试了几个问题,设法解决了产品平台数据的问题。类别平面数据,但不是此特定索引。
任何线索?
感谢。
答案 0 :(得分:8)
n也是这个问题。我把它缩小到了Attribute.php的问题。 打开app / code / local / Sm / Shopby / Model / Resource / Indexer / Attribute.php
在第65行附近,您将找到名为_getAttribute的受保护函数。 从此改变,
protected function _getAttributes($attributeId = null){
$collection = Mage::getSingleton('eav/config')
->getEntityType(Mage_Catalog_Model_Product::ENTITY)
->getAttributeCollection()
->addFieldToFilter('`main_table`.`frontend_input`', array('in' => array('select', 'multiselect')));
if (!empty($attributeId)) {
$collection->addFieldToFilter('`main_table`.`attribute_id`', $attributeId);
}
return $collection;
}
代替此代码,
protected function _getAttributes($attributeId = null){
$collection = Mage::getSingleton('eav/config')
->getEntityType(Mage_Catalog_Model_Product::ENTITY)
->getAttributeCollection()
->addFieldToFilter('main_table.frontend_input', array('in' => array('select', 'multiselect')));
if (!empty($attributeId)) {
$collection->addFieldToFilter('main_table.attribute_id', $attributeId);
}
return $collection;
}
改变了什么? 我唯一改变的是删除第69和71行的撇号(')。这意味着'main_table'。'frontend_input'现在变为main_table.frontend_input。现在脚本正确地更新了SQL。在Admin和Shell中都有。
答案 1 :(得分:7)
同样的问题,现在解决了。
列'main_table.frontend_input'
存在但'`main_table`.`frontend_input`'
(在SQL查询中转换为```main_table```.```frontend_input```
)没有。
转到Sm_Shopby_Model_Resource_Indexer_Attribute并移除`
更新: Sm_Shopby_Model_Resource_Indexer_Attribute是一个SM Shopby扩展的类。
该文件保留在magento_folder / app / code / ... /Sm/Shopby/Model/Resource/Indexer/Attribute.php中,要更改的函数是_getAttributes。