2010-09-03 45 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); 

歡呼聲,約翰內斯

相關問題