Frage

Wie kann ich eine Sammlung mit den Attributsätzen erhalten, die ein bestimmtes Attribut enthalten?
Ich möchte dazu in der Lage sein, dies aus einem einzelnen Sammlungspaziergang (auf einzelnen Auswahl) zu tun, um das Laden jedes Attributsatzes zu vermeiden und die Attribute im Inneren zu überprüfen.
Ich kenne diese Nähte wie Standard -Sachen, aber ich bin heutzutage ein bisschen langsam.

War es hilfreich?

Lösung

        $attributeId = 96;
        $collection  = Mage::getModel('eav/entity_attribute_set')
            ->getCollection()
            ->addFieldToFilter('eav_entity_attribute.attribute_id', $attributeId)
            ->addFieldToFilter('eav_entity_type.entity_type_code', Mage_Catalog_Model_Product::ENTITY)
            ->join(array('eav_entity_type'=> 'eav/entity_type'), 'eav_entity_type.entity_type_id=main_table.entity_type_id','entity_type_code')
            ->join(array('eav_entity_attribute'=> 'eav/entity_attribute'), 'eav_entity_attribute.attribute_set_id=main_table.attribute_set_id', 'attribute_id');

Andere Tipps

Ich fand das kurz, bevor @MageUz die perfekte Antwort schrieb. Es ist schnell, wenn Sie nur die Attribut -Set -IDs benötigen. Vielleicht braucht es jemand anderes.

$attributeId = 123;
$setInfo = Mage::getResourceModel('eav/entity_attribute_set')
        ->getSetInfo(array($attributeId));
$attributeSetIds = array_keys($setInfo[$attributeId]);

Ich weiß nicht, wie ich es mit Magento -Objekten machen soll, aber eine direkte Frage würde genauso gut funktionieren, denke ich

SELECT  `eav_entity_attribute`.`attribute_set_id` 
FROM  `eav_attribute` ,  `eav_entity_attribute` 
WHERE  `eav_attribute`.`attribute_code` =  'cost'
AND  `eav_attribute`.`attribute_id` =  `eav_entity_attribute`.`attribute_id` 

Sie können den folgenden Code verwenden, um das gesamte Attribut eines bestimmten Attributsatzes abzurufen.

 $data =   Mage::getResourceModel('catalog/product_attribute_collection')
        ->setAttributeSetFilter(9) // Add attribute set ID
        ->load();
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top