Necesito recuperar una lista de todos los valores que se utilizan para un atributo de producto específico, en (pseudo) SQL:
SELECT DISTINCT attribute FROM products;
¿Cómo usaría el Magento ORM para generar una consulta equivalente? He probado la distinct()
función pero no funciona como esperaba:
// 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');
Lo que estoy trabajando para obtener sería una matriz de attribute
valores, sin duplicados
array('some value', 'some other value', 'a really common value', 'etc...');
Respuestas:
Gracias a Kalpesh, esto ya está en el blog:
http://ka.lpe.sh/2011/06/06/magento-get-all-the-values-of-a-magento-eav-for-a-particular-attribute-code/
Aquí hay otra solución: https://stackoverflow.com/a/15509714/1480397
Pero no estoy seguro, si esto funciona en atributos no seleccionados.
fuente
Puede enviar cualquier declaración SQL directamente a través de la conexión para adquirir cualquier información que no sea accesible a través de la api de magentos.
Las funciones de consulta son fetchRow y fetchAll y están estructuradas:
fetchAll ($ estructurada_sql, $ bind_filters = array (), $ fetchMode = nulo)
fuente