以编程方式从模型中删除属性集中的属性

时间:2013-08-08 20:39:19

标签: magento magento-1.7

我尝试使用以下代码删除eav_entity_attribute:

$entAttr = Mage::getModel('eav/entity_attribute')->getCollection()
        ->addFieldToFilter('attribute_set_id',$set->getId())
        ->addFieldToFilter('attribute_id',$attId)->getFirstItem();
$entAttr->delete();

但它不起作用。我收到此错误:找不到列:1054'where子句'中的未知列'attribute_set_id''

如何以这种方式删除eav_entity_attribute?

1 个答案:

答案 0 :(得分:2)

Mage::getModel('catalog/resource_eav_attribute')->loadByCode('catalog_product','attribute_name')->delete();

或直接从属性集中删除它:

$setup = Mage::getModel('eav/entity_setup); 
$setup->startSetup(); 
$setup->deleteTableRow('eav/entity_attribute',
'attribute_id',$setup->getAttributeId('catalog_product','attribute_code_here'),'attribute_set_id',$setup->getAttributeSetId('catalog_product', 'Default') 
);
$setup->endSetup();