Получение всех значений атрибута товара из Magento EAV

9 декабря 2012

Если вы когда-нибудь сталкивались с проблемой вывода всех значений товарного атрибута из EAV модели, то следующее решение поможет вам.

Модель сущность-атрибут-значение (entity attribute value) представляет собой модель хранения данных, в которой имеется некая сущность и связанный с ней набор атрибутов (свойств, параметров). В математике эта модель известна как модель разреженных матриц. Если хранить экземпляр сущности в обычной реляционной базе данных, то у нас появится большое количество пустых столбцов и строк, что нам совсем не нужно. Разреженная матрица - это матрица в которой большинство элементов нулевые. Благодаря особым алгоритмам учитывающим разреженность такие матрицы легко сжимаются и требуют меньше ресурсов компьютера для обработки.

Итак, давайте посмотрим как получить все значения атрибута из EAV структуры.



     $attribute = Mage::getModel('eav/config')->getAttribute('catalog_product', 'color'); //здесь, "color" это код атрибута
     $allOptions = $attribute->getSource()->getAllOptions(true, true);
 foreach ($allOptions as $instance) {
   $myArray[$instance['value']] = $instance['label'];
 }
 Mage::log($myArray);

Теперь вы получите список значений атрибута цвет как массив MyArray в формате value => label.

Вертикальная линия Обсудить проект
Давайте добьемся успеха вместе

Контактные данные




Нажимая кнопку «Отправить», я даю свое согласие на обработку моих персональных данных в соответствии с Федеральным законом от 27.07.2006 года №152-ФЗ «О персональных данных», на условиях и для целей, определенных в политике конфиденциальности

Vertical Line
Choose languageRU

© 2009—2025 Mygento. Все права защищены. Политика конфиденциальности

Menu Menu Menu

Аккредитованная
ИТ-компания