Magento:如何获取属于属性集的属性?

Epi*_*rus 7 magento

设置属性后,如何获取其包含的属性列表(或者更好的是,只有不属于Default属性集的自定义属性)?

属性集本身可以通过多种方式获得,例如:

$entityTypeId = Mage::getModel('eav/entity')->setType('catalog_product')->getTypeId();
$attributeSet = Mage::getResourceModel('eav/entity_attribute_set_collection')->setEntityTypeFilter($entityTypeId)->addFilter('attribute_set_name', 'Default');
Run Code Online (Sandbox Code Playgroud)

请注意,我需要使用属性集,因此从产品中获取属性列表不是我正在寻找的解决方案.

小智 16

Mage::getModel('catalog/product_attribute_set_api')->items();
Run Code Online (Sandbox Code Playgroud)

获取属性集本身.

Mage::getModel('catalog/product_attribute_api')->items($setId);
Run Code Online (Sandbox Code Playgroud)

获取属性集的属性.


Gab*_*eri 6

我相信答案就在于这个模型

Mage::getModel('catalog/product_attribute_set_api')->items($setId);
Run Code Online (Sandbox Code Playgroud)

该类Mage_Catalog_Model_Product_Attribute_Api似乎有两种方法.items()方法似乎按照你的要求进行,即"从指定的属性集中检索属性"

我希望有帮助:)

  • 我认为你的意思是`Mage :: getModel('catalog/product_attribute_api') - > items($ setId);`,`... attribute_set_api`会给出一个`Mage_Catalog_Model_Product_Attribute_Set_Api`,对吗? (10认同)

小智 6

正确的方式:

$attributes = Mage::getResourceModel('catalog/product_attribute_collection')
->setAttributeSetFilter($attributeSetId)
->getItems();
var_dump($attributes);
Run Code Online (Sandbox Code Playgroud)

您可以更改资源'catalog/product_attribute_collection'(customer,...)和Set ID $ attributeSetId