J'ai besoin de récupérer une liste de toutes les valeurs qui sont utilisées pour un attribut de produit spécifique, en (pseudo) SQL:
SELECT DISTINCT attribute FROM products;
Comment utiliser l'ORM Magento pour générer une requête équivalente? J'ai essayé la distinct()
fonction mais elle ne fonctionne pas comme je m'y attendais:
// 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');
Ce que je cherche à obtenir serait un tableau de attribute
valeurs, sans doublons
array('some value', 'some other value', 'a really common value', 'etc...');
Réponses:
Grâce à kalpesh, c'est déjà blogué:
http://ka.lpe.sh/2011/06/06/magento-get-all-the-values-of-a-magento-eav-for-a-particular-attribute-code/
Voici une autre solution: https://stackoverflow.com/a/15509714/1480397
Mais je ne sais pas si cela fonctionne sur des attributs non sélectionnés.
la source
Vous pouvez soumettre toutes les instructions SQL directement via la connexion pour acquérir toutes les données qui ne sont pas accessibles via l'API de magentos.
Les fonctions de requête sont fetchRow et fetchAll et sont structurées:
fetchAll ($ structure_sql, $ bind_filters = array (), $ fetchMode = null)
la source