我们如何从下拉属性中删除某个选项(magento)

时间:2010-09-03 10:06:04

标签: magento

我需要从属性中删除某个选项值,例如color。如果color有红色,蓝色和绿色作为选项,那么我需要删除其中一个,例如蓝色。

到目前为止,我已经能够获取属性值,但是我在删除特定选项时遇到了问题。

    $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);

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

感谢你,

2 个答案:

答案 0 :(得分: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);
欢呼,约翰尼斯

答案 1 :(得分: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();
}