2011-09-26 11 views

Odpowiedz

50

Musisz znać entity_type, ponieważ możesz mieć ten sam attribute_code dla różnych podmiotów. Tak, aby uzyskać modelu atrybut:

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

$entity_type parametr można numeric (id), string bezpośrednio (np 'catalog_product' lub Mage_Catalog_Model_Product::ENTITY) lub może to być przypadek modelu Mage_Eav_Model_Entity_Type

+0

Dzięki. Postaram się potwierdzić wynik. – vietean

+0

Użyłem twojego kodu powyżej, aby dowiedzieć się, czy short_description jest "Widoczny na stronie widoku produktu na froncie": $ attributeShortDescription = Mag :: getModel ('eav/entity_attribute') -> loadByCode ("katalog_produktu", "short_description "); $ attributeShortDescription-> getIsVisibleOnFront(); –

+6

wersja używająca stałych: $ _attr = Mage :: getModel ('eav/entity_attribute') -> loadByCode (Mage_Catalog_Model_Product :: ENTITY, $ attributeCode); –

0

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

+0

To nie tylko dane, które dotyczą tylko jednego z wielu scenariuszy, ale także echo akceptowanej odpowiedzi, kod nie jest sformatowany i nie ma żadnego wyjaśnienia. –

3

Być może można odczytać atrybutów przez filtr kolekcję

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

Ponieważ muszę atrybuty z Produktu przez kod, robię to tak:

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

$ kody to attribute_code -array Zakres: rozszerzony Mage_Catalog_Model_Product

3
$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']; 
Powiązane problemy