Получить модель атрибута по номеру атрибута в Magento - PullRequest
19 голосов
/ 26 сентября 2011

Как я могу получить Attribute model (из: eav_attribute таблица) по attribute_code в Magento?
Примечание:
- Мне все равно, что такое entity_type.
Большое вам спасибо.

Ответы [ 4 ]

52 голосов
/ 26 сентября 2011

Вы должны знать entity_type, потому что вы можете иметь одинаковые attribute_code для разных сущностей. Итак, чтобы получить атрибут модели:

$attributeModel = Mage::getModel('eav/entity_attribute')->loadByCode($entity_type, $attributeCode);

$entity_type параметр может быть numeric (идентификатор напрямую), string (например, 'catalog_product' или Mage_Catalog_Model_Product::ENTITY) или это может быть экземпляр модели Mage_Eav_Model_Entity_Type

3 голосов
/ 25 апреля 2014
$attribute_code = "flat_printing_quantity"; 
$attribute_details =
Mage::getSingleton("eav/config")->getAttribute(Mage_Catalog_Model_Product::ENTITY, $attribute_code);
$attribute = $attribute_details->getData();
echo $attribute['attribute_id'];
3 голосов
/ 08 мая 2013

Возможно, вы можете прочитать атрибуты, отфильтровав коллекцию

   Mage::getModel('eav/entity_attribute')->getCollection()->addFieldToFilter('attribute_code', array('in' => $codes) )

Поскольку мне нужны атрибуты из Product по коду, я делаю это так:

    $codes = (array) $codes; 
    $res = array_intersect_key($this->getAttributes(), array_flip($codes));

$ codes - это массив attribute_code Область применения: расширенный Mage_Catalog_Model_Product

0 голосов
/ 19 марта 2013

$ attributeModel = Mage :: getModel ('eav / entity_attribute') -> loadByCode (1, 'is_approved'); echo $ attributeModel-> getAttributeId ();

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...