Получить атрибуты и их значения, используя одну коллекцию в Magento? - PullRequest
3 голосов
/ 18 февраля 2012

Как получить атрибуты и их значения, используя одну коллекцию в Magento?Прямо сейчас я использую ниже

$attributesInfo = Mage::getResourceModel('eav/entity_attribute_collection')
                  ->setEntityTypeFilter(4)
                  ->addFieldToFilter('frontend_input','multiselect')
                  ->addSetInfo()
                  ->getData(); 

, чтобы получить атрибут и ниже код, чтобы получить значение атрибута


$product = Mage::getModel('catalog/product');
$collection = Mage::getResourceModel('eav/entity_attribute_collection')
                ->setEntityTypeFilter($product->getResource()->getTypeId())
                ->addFieldToFilter('attribute_code', $attributeName);

Мой код выхода атрибута, как показано ниже

 
  Color :
   Black
   Blue
   Green

 Brand :
   Hp
   Dell
   Apple

 Size :
  12
  14
  16

 

Спасибо,

Балан

1 Ответ

17 голосов
/ 18 февраля 2012

Как насчет этого:

$attributes = Mage::getSingleton('eav/config')
    ->getEntityType(Mage_Catalog_Model_Product::ENTITY)
    ->getAttributeCollection()
    ->addFieldToFilter('source_model', array('notnull' => true))
    ->addSetInfo();

foreach ($attributes as $attribute)
{
    echo "{$attribute->getFrontendLabel()}:\n";
    foreach ($attribute->getSource()->getAllOptions() as $option)
    {
        echo "  {$option['label']}\n";
    }
    echo "\n";
}

С помощью eav/config и eav/entity_type есть вероятность, что вы будете повторно использовать уже загруженную коллекцию, что, конечно, более эффективно, чем перезагрузка тех же данных в новыхколлекции.

РЕДАКТИРОВАТЬ: Обновлен ответ, чтобы включить фильтр коллекции атрибутов, предложенный Александром Рябовым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...