Preciso recuperar uma lista de todos os valores usados para um atributo específico do produto, no (pseudo) SQL:
SELECT DISTINCT attribute FROM products;
Como eu usaria o Magento ORM para gerar uma consulta equivalente? Eu tentei a distinct()
função, mas ela não funciona como eu esperava:
// 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');
O que estou trabalhando para obter seria uma matriz de attribute
valores, sem duplicatas
array('some value', 'some other value', 'a really common value', 'etc...');
Respostas:
Graças ao kalpesh, isso já está no blog:
http://ka.lpe.sh/2011/06/06/magento-get-all-the-values-of-a-magento-eav-for-a-particular-attribute-code/
Aqui está outra solução: https://stackoverflow.com/a/15509714/1480397
Mas não tenho certeza se isso funciona em atributos não selecionados.
fonte
Você pode enviar qualquer instrução SQL diretamente através da conexão para adquirir quaisquer dados que não sejam acessíveis pela API do magentos.
As funções de consulta são fetchRow e fetchAll e estão estruturadas:
fetchAll ($ struct_sql, $ bind_filters = array (), $ fetchMode = null)
fonte