Je suis bloqué sur ce sujet depuis quelques heures. J'ai réussi à le faire fonctionner en modifiant quelques lignes dans le fichier /lib/Varien/Data/Collection/Db.php
mais je préfère utiliser la bonne solution et ne pas toucher à mon cœur.
Tout ce que je dois faire, c'est obtenir une collection et la filtrer par deux champs ou plus. Dites, customer_firstname
y remote_ip
. Voici mon (disfonctionnel sans hacking Db.php
) code :
$collection = Mage::getModel('sales/order')->getCollection()->
addAttributeToSelect("*")->
addFieldToFilter(array(array('remote_ip', array('eq'=>'127.0.0.1')),
array('customer_firstname', array('eq'=>'gabe'))), array('eq'=>array(1,2,3)));
Avec un stock Db.php
J'ai essayé ceci : (échantillon tiré de http://magentoexpert.blogspot.com/2009/12/retrieve-products-with-specific.html )
$collection->addFieldToFilter(array(
array('name'=>'orig_price','eq'=>'Widget A'),
array('name'=>'orig_price','eq'=>'Widget B'),
));
Mais cela me donne cette erreur :
Warning: Illegal offset type in isset or empty in magento/lib/Varien/Data/Collection/Db.php on line 369
Si je l'entoure d'un try/catch, il passe ensuite à _getConditionSql() et donne cette erreur :
Warning: Invalid argument supplied for foreach() in magento/lib/Varien/Data/Collection/Db.php on line 412
Quelqu'un a-t-il un code fonctionnel pour faire cela ? J'utilise Magento 1.9 (Enterprise). Merci.