6
votes

Magento: Combinez EQ et est NULL dans AddattributeToFilter

Je veux combiner avec ou "NULL" et "EQ" => Array () xxx

mais cela ne fonctionne pas.


0 commentaires

3 Réponses :


13
votes

à utiliser addattributeetofilter () avec une condition ou Vous pouvez transmettre un tableau de tableaux comme ceci: xxx

la définition de la définition de Filtrage contre NULL Les mots-clés peuvent sembler un peu déroutant à première vue, mais c'est simple simple, une fois que vous vous y êtes habitué.

Magento prend en charge deux types de filtrage de type String < / code>, nommément 'null' et 'notnull' , pour comparer null mots-clés.

Soyez conscient, que même si vous devez passer de touche => Value paires (car une matrice associative est utilisée), la valeur sera toujours ignorée, lorsque le type de filtre 'null' ou 'notnull' est utilisé.

Exemple xxx

La sortie de la députée peut varier en fonction de la configuration de votre boutique (ID d'attribut, nombre de magasins, etc. ), mais la logique ou dans le où la clause doit toujours rester la même: xxx


4 commentaires

Désolé, mais je veux filtrer pas deux attributs différents ... Le résultat de votre exemple: nom_of_attribute_1 est null et (nom_of_attribute_2 = 115 ou nom_of_attribute_2 = 116) mais je veux: (nom_of_attribute_1 est null ou nom_of_attribute_1 = 115 ou nom_of_attribute_1 = 116). Ce n'est pas possible avec votre code.


@timopeschka: étrange, pour moi ça marche parfaitement. J'ai ajouté un exemple et sa sortie. Comment votre clause semble-t-il lorsque vous exécutez mon exemple?


Quel type de collection utilisez-vous? Certains, comme les tables de vente aplaties, ont leur propre version de la méthode AddattributeTofilter car elles ne sont pas réellement des collections EAV. Cela pourrait expliquer la divergence que vous voyez.


J'allais fou jusqu'à ce que je trouvais votre message. Merci beaucoup !



-1
votes

Pour utiliser AddattributeetOffertOfilter avec une condition et avec une jointure gauche Vous pouvez faire quelque chose comme ça: xxx


0 commentaires

0
votes
  • J'ai attribut produit is_expired code> avec oui et aucune valeur et je veux que seuls ces produits n'ont pas de valeur.Below Query Travailler pour moi qui reçoivent un enregistrement qui a NEQ 1 et non NULL.

    • combine pas égal à et null condition avec ou. p>

       $collection->addAttributeToFilter('attribue_name', array('or'=> array(
           0 => array( 'neq' => '1'),
           1 => array('is' => new Zend_Db_Expr('null')))
       ), 'left');
      
    • Vous pouvez modifier neq code> avec eq code>. p> li> ul>


1 commentaires

Bien que ce code puisse répondre à la question, fournissant un contexte supplémentaire concernant comment et pourquoi il résout le problème améliorerait la valeur à long terme de la réponse.