Trouvez la attribute_id par attribute_code
-
16-10-2019 - |
Question
Je dois trouver les valeurs attribute_id
des attributs image
, small_image
et thumbnail
. Je les connais pour ma base de données - 85, 86 et 87, mais je dois faire ma dynamique de requête, au lieu de valeurs codées en dur. Ce que je lutte avec est de trouver dans quelle table les attributs sont stockés. J'ai vérifié catalog_product_attribute
mais il n'y a pas de colonne avec le name/code
des attributs.
Je dois les acquérir comme une requête SQL, pas code Mage::...
PHP.
Un exemple de code SQL requête ou tout autre document d'orientation sera très utile.
La solution
$attribute = Mage::getModel('eav/config')->getAttribute('catalog_product', $attributeCode);
$id = $attribute->getId();
si $id
est null
l'attribut n'existe pas.
Il fonctionne de la même pour obtenir les attributs de la catégorie, les attributs des clients et des attributs d'adresse du client.
$attribute = Mage::getModel('eav/config')->getAttribute('catalog_category', 'is_anchor');
$attribute = Mage::getModel('eav/config')->getAttribute('customer', 'gender');
$attribute = Mage::getModel('eav/config')->getAttribute('customer_address', 'postcode');
[EDIT]
Apparemment, je ne peux pas lire. J'ai raté la ligne qui sql query
déclaré.
Voici une requête aussi:
SELECT
e.attribute_id
FROM
eav_attribute e
LEFT JOIN
eav_entity_type t
ON e.entity_type_id = t.entity_type_id
WHERE
e.attribute_code = 'image' AND
t.entity_type_code = 'catalog_product'
Autres conseils
J'ai utilisé ce code pour obtenir l'ID d'attribut eav_attribute tables
$attribute_code = 'image';
$eavCollections = Mage::getModel('eav/entity_attribute')->getCollection()
->addFieldToFilter('attribute_code', array('eq'=> $attribute_code ));
foreach($eavCollections as $eavCollection){
$attribute_id = $eavCollection['attribute_id']; //get the attribute id
echo $attribute_id;
}