Lors de l'utilisation de la méthode de collecte Magento, addFieldToFilter est-il possible d'autoriser le filtrage par valeurs NULL? Je veux sélectionner tous les produits d'une collection qui ont un attribut personnalisé même si aucune valeur n'est affectée à l'attribut.Magento addFieldToFilter autorise les valeurs NULL
Répondre
Vous n'avez pas besoin d'utiliser addFieldToFilter
.
maintenant la solution:
attributs nom est connu sous le nom code
dans magento, il vous suffit d'utiliser le code ci-dessous pour obtenir tous les produits qui ont un attribut spécifique comme un tableau
$prodsArray=Mage::getModel('catalog/product')->getCollection()
->addAttributeToFilter('custom_attribute_code')
->getItems();
vous pouvez également spécifier certaines conditions pour la valeur de l'attribut dans addAttributeToFilter
dans le deuxième paramètre de addAttributeToFilter.
vous pouvez trouver cette méthode dans ce fichier (pour étude ultérieure):
app/code/core/Mage/Eav/Model/Entity/Collection/Abstract.php
Filtrage d'une collection de produits par null/attributs vides a deux solutions possibles. Magento utilise un INNER JOIN pour saisir les valeurs des attributs à filtrer. MAIS si une valeur n'est pas affectée à l'attribut product, la jointure échouera, car une table/relation de base de données est manquante.
Solution # 1: Utilisation addAttributeToFilter() et changer le type de jointure de "intérieur" (par défaut) à "gauche":
$collection = Mage::getModel('catalog/product')->getCollection();
$collection->addAttributeToFilter('custom_attribute', array(... condition options ..), 'left');
Solution # 2: Assurez-vous que votre attribut personnalisé a une valeur par défaut. Magento est conservateur à cet égard. Magento créera seulement la relation entre un attribut et un produit si une valeur est donnée pour l'attribut. Ainsi, en l'absence d'une valeur spécifiée par l'utilisateur ou d'une valeur par défaut, l'attribut ne sera pas accessible pour filtrer un produit même si l'attribut apparaît dans la vue détaillée du produit sous le panneau d'administration.
Je vois que vous avez déjà trouvé une solution, mais il y a aussi cette option:
$collection->addFieldToFilter('parent_item_id', array('null' => true));
Mais si vous voulez utiliser "NULL" => false, qui NE FONCTIONNE PAS. (et je remarque que vous pouvez utiliser des éléments tels que « dans », « nin », « éq », « NEQ », « gt »), vous pouvez le faire:
$collection->addFieldToFilter('parent_item_id', array('neq' => 'NULL'));
Espérons que cela est toujours utile. ..
Voir la documentation dans le code de Varien_Data_Collection_Db :: _ getConditionSql(). Il décrit toutes les options possibles, comme le 'null' mentionné, mais aussi 'notnull' pour le reverse. – fietserwin
Cela fonctionne pour ne pas les filtres NULL
$collection->addFieldToFilter('parent_item_id', array('notnull' => true));
Parce que la question ne correspond pas exactement au titre de la question et je l'ai trouvé le leur plusieurs fois en recherchant une condition comme: Offre spéciale OU NULL
Si vous souhaitez filtrer une collection correspondant à une valeur ou NULL, vous pouvez utiliser:
$collection->addFieldToFilter('<attribute>', array(
array('eq' => '<value>'),
array('null' => true)
));
- 1. Magento addFieldToFilter: Deux champs, correspondent à OU, non ET
- 2. Comparaison avec les valeurs NULL
- 3. NHibernate ICriteria - Le tri autorise-t-il null?
- 4. Requête SQL qui remplace les valeurs NULL.
- 5. vérifier les valeurs de champ pour null
- 6. Définir toutes les valeurs 0 sur NULL
- 7. remplacer les valeurs NULL dans pivot sql
- 8. Supprimer les valeurs null du tableau javascript
- 9. sql sélectionner avec les valeurs NULL
- 10. Comment ignorer les valeurs null dans R?
- 11. Vues et valeurs NULL
- 12. Table des valeurs de datetime null
- 13. valeurs NULL Retour Résultats
- 14. indexation valeurs NULL dans PostgreSQL
- 15. Comment modifier les valeurs NULL pour les chaînes vides?
- 16. Comment traiter les valeurs NULL dans les comparaisons d'égalité?
- 17. Valeurs Hibernate Null pour @CollectionOfElements
- 18. C - Vérification des valeurs NULL
- 19. ctype_alpha mais autorise les espaces (php)
- 20. Exclure les valeurs vides/NULL de la sérialisation JSON
- 21. Comment compter toutes les valeurs NULL dans une table?
- 22. ordre SQL Trier avec les valeurs NULL dernières
- 23. Comment gérer les valeurs null (peut-être) dans un PreparedStatement?
- 24. arrêt php passer les valeurs NULL tp MySQL
- 25. MySQL charge les valeurs NULL à partir des données CSV
- 26. valeurs NULL dans les propriétés d'objet dans Entity Framework
- 27. Comment gérer les valeurs NULL dans mysql/php?
- 28. comment attraper les valeurs NULL en utilisant l'instruction case
- 29. NSUserDefaults - obtention de null pour toutes les valeurs
- 30. Comment puis-je autoriser les valeurs NULL dans MySQL
Merci de remarquer addFieldToFilter - elle a conduit à la solution de gestion NULL FIE lds – leepowers
c'est en fait faux, cela fera une comparaison avec un '' vide '' plutôt qu'un filtrage "nul". – useless