2013-06-25 60 views

回答

10

有一個簡單的魔術方法來獲取對象的值:

$attribute = Mage::getModel('eav/entity_attribute')->load($your_attribute_id); 
$attribute->getFrontendInput(); 

結果是一個短字符串,例如「文本」或「選擇」。這裏是所有類型的Magento的1.7(德語翻譯)的簡短列表:

  • 文本:Einzeiliges Textfeld
  • textarea的:Mehrzeiliger Textbereich
  • 日期:基準
  • 布爾:JA/Nein
  • 多選:Mehrfach Auswahl
  • 選擇:選擇=「選自:下拉
  • 價格:PREIS
  • media_image:畫報
  • WEEE:慶典Produktsteuer(FPT)

如果你需要從單一屬性的所有選項的列表,這樣做:

Mage::getModel('eav/config')->getAttribute('catalog_product' , 'code_of_attribute') 

所以,你已經裝載屬性目的。加載對象的其他方法不適用於我(例如Mage::getModel('eav/entity_attribute')->load('xy');)。

然後使用的getSource()方法和getAllOptions方法才能收到的陣列與所有選項:

$your_attribute->getSource()->getAllOptions(true, true) 

結果看起來像這樣:

array(4) { 
    [0]=> 
    array(2) { 
    ["label"]=> 
    string(0) "" 
    ["value"]=> 
    string(0) "" 
    } 
    [1]=> 
    array(2) { 
    ["value"]=> 
    string(1) "5" 
    ["label"]=> 
    string(6) "red" 
    } 
    [2]=> 
    array(2) { 
    ["value"]=> 
    string(1) "4" 
    ["label"]=> 
    string(6) "blue" 
    } 
    [3]=> 
    array(2) { 
    ["value"]=> 
    string(1) "3" 
    ["label"]=> 
    string(6) "green" 
    } 
}