3

我想知道如何获取产品属性对象的类型。在 magento 后端中,需要在“文本字段”或“下拉菜单”等各种选项之间进行选择。

我正在使用产品导入脚本,重要的是要知道正确设置值的属性类型。

4

1 回答 1

12

有一个简单的魔术方法来获取对象的值:

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

结果是一个短字符串,例如“text”或“select”。这是 Magento 1.7 中所有类型的简短列表(德语翻译):

  • 文字:Einzeiliges Textfeld
  • textarea: Mehrzeiliger Textbereich
  • 日期:基准
  • 布尔值:Ja/Nein
  • 多选:Mehrfach Auswahl
  • 选择:选择=“选择:下拉
  • 价格:普莱斯
  • media_image:图片
  • weee: Feste 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"
  }
}
于 2013-06-25T08:28:16.397 回答