我需要从属性中删除某个选项值,例如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);
如何从选项列表中删除选项?任何帮助将不胜感激。
感谢你,
答案 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();
}