2010-09-03 48 views
0

我需要从属性中删除某个选项值,例如color。如果color有红色,蓝色和绿色作为选项,那么我需要删除其中的一个,例如蓝色。我们如何从下拉属性中删除某些选项(magento)

我到目前为止一直能够获得属性值,但我在删除特定选项时遇到了问题。

$attribute_model  = Mage::getModel('eav/entity_attribute'); 
    $attribute_options_model= Mage::getModel('eav/entity_attribute_source_table') ; 

    $attribute_code   = $attribute_model->getIdByCode('catalog_product', 'color_pattern'); 
    $attribute    = $attribute_model->load($attribute_code); 

    $attribute_table  = $attribute_options_model->setAttribute($attribute); 
    $options    = $attribute_options_model->getAllOptions(false); 

如何从选项列表中删除选项?任何帮助将不胜感激。

感谢你,

+0

只是要清楚,您*需要*以编程方式执行此操作,并且无法通过管理工具执行此操作? – 2010-09-03 12:12:06

+0

或数据库,对于这个问题... – silvo 2010-09-04 22:35:26

+0

雅,我已经成功地在一个属性中插入某个选项的值,而文件自动上传,但似乎没有找到任何功能,从属性中删除选项值,而文件被删除,任何方式,我发现一种方式来通过SQL查询删除它.. thanx反正:) – jarus 2010-09-09 04:01:56

回答

0

找到一种方法来删除通过SQL语句选项;)

if (@unlink(Mage::getBaseDir('media') . DS . "sizecharts" . DS . $sizecharts->getFilename())) { 

    $select = $read->select() 
      ->distinct(true) 
      ->from($optionvalueTable, array('option_id')) 
      ->where('value="' . $sizecharts->getFilename() . '"'); 

    $opt1 = $read->fetchAll($select); 
    $deleteCondition = $write->quoteInto('option_id=?', $opt1[0]['option_id']); 
    $write->delete($optionTable, $deleteCondition); 
    //$model->setId($this->getRequest()->getParam('id')) 
    $sizecharts->delete(); 
} 
2

发现了另一种方式:

$options['delete'][$option_id] = true; 
$options['value'][$option_id] = true; 

$options['delete'][$another_option_id] = true; 
$options['value'][$another_option_id] = true; 

// (...) 

$setup = new Mage_Eav_Model_Entity_Setup('core_setup'); 
$setup->addAttributeOption($options); 

欢呼声,约翰内斯

相关问题