Frage

Ich muss das finden attribute_id Werte der Attribute image, small_image und thumbnail. Ich kenne sie für meine Datenbank - 85, 86 und 87, aber ich muss meine Abfrage dynamisch machen, anstatt mit hart codierten Werten. Ich habe es zu kämpfen zu finden, in welcher Tabelle die Attribute gespeichert sind. Ich überprüfte catalog_product_attribute Aber es gibt keine Spalte mit der name/code der Attribute.

Ich muss sie als SQL -Abfrage erwerben, nicht als Mage::... PHP -Code. Ein Beispiel -SQL -Abfragecode oder eine andere Anleitung ist sehr hilfreich.

War es hilfreich?

Lösung

$attribute = Mage::getModel('eav/config')->getAttribute('catalog_product', $attributeCode);
$id = $attribute->getId();

wenn $id ist null Dann existiert das Attribut nicht.
Es funktioniert gleich, um Kategorienattribute, Kundenattribute und Kundenadattribute zu erhalten.

$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');

BEARBEITEN
Anscheinend kann ich nicht lesen. Ich habe die angegebene Linie verpasst sql query.
Hier ist auch eine Frage:

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'

Andere Tipps

Ich habe diese Codes zum Abrufen der Attribut -ID in verwendet EAV_ATTRIBUTE Tische

$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;
                }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top