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.

Était-ce 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;
                }
Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top