web-dev-qa-db-fra.com

Obtenir le modèle d'attribut par attribut_code dans Magento

Comment obtenir Attribute model (depuis:eav_attributetable) par attribute_code dans Magento?
Remarquer:
- Je me fiche de ce qu'est entity_type.
Merci beaucoup.

19
vietean

Vous devez connaître entity_type car vous pouvez avoir le même attribute_code pour différentes entités. Donc, pour obtenir un modèle d'attribut:

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

Le paramètre $entity_type peut être numeric (id directement), string (par exemple 'catalog_product' ou Mage_Catalog_Model_Product::ENTITY) ou il peut s'agir d'une instance du modèle Mage_Eav_Model_Entity_Type

51
azakolyukin

Peut-être que vous pouvez lire les attributs en filtrant la collection

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

Puisque j'ai besoin des attributs du produit par code, je le fais comme ceci:

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

$ codes est un tableau de codes d'attributs Portée: étendue Mage_Catalog_Model_Product

3
Andreas Dyballa
$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
Ashwani Panwar

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

0
Praful Rajput