Мне нужно получить список всех значений, которые используются для определенного атрибута продукта, в (псевдо) SQL:
SELECT DISTINCT attribute FROM products;
Как бы я использовал Magento ORM для создания эквивалентного запроса? Я пробовал эту distinct()
функцию, но она не работает так, как я ожидал:
// Returns an array of NULL with a length equal to all products in the catalog
Mage::getModel('catalog/product')->getCollection()
->addAttributeToSelect('attribute')
->distinct(true)
->getColumnValues('attribute');
То, что я работаю, чтобы получить массив attribute
значений без дубликатов
array('some value', 'some other value', 'a really common value', 'etc...');
Ответы:
Благодаря Kalpesh, это уже в блоге:
http://ka.lpe.sh/2011/06/06/magento-get-all-the-values-of-a-magento-eav-for-a-particular-attribute-code/
Вот еще одно решение: https://stackoverflow.com/a/15509714/1480397
Но я не уверен, работает ли это на невыбранных атрибутах.
источник
Вы можете отправить любые операторы SQL прямо через соединение, чтобы получить любые данные, которые недоступны через API magentos.
Функции запроса являются fetchRow и fetchAll и имеют структуру:
fetchAll ($ structured_sql, $ bind_filters = array (), $ fetchMode = null)
источник