Je ne peux pas obtenir l'attribut supplémentaire 'nom' de la collection de produits lorsque j'utilise l'itérateur de ressources.itérateur de collection Magento - impossible d'obtenir l'attribut supplémentaire
Ma collection de produits:
$productCollection = Mage::getModel('catalog/product')->getCollection();
$productCollection->addAttributeToSelect('name')
->joinField('category_id', 'catalog/category_product', 'category_id', 'product_id=entity_id', null, 'left')
->addAttributeToFilter('category_id', array('in' => $subCategories))->addAttributeToFilter('visibility', '4')
->getSelect()->group('e.entity_id');
Iterator:
Mage::getSingleton('core/resource_iterator')->walk($productCollection->getSelect(), array(array($this, 'generateXml')));
fonction generateXml:
public function generateXml($args){
var_dump($args['row']);
...
array(11) {
["entity_id"]=>
string(5) "49335"
["entity_type_id"]=>
string(1) "4"
["attribute_set_id"]=>
string(2) "18"
["type_id"]=>
string(6) "simple"
["sku"]=>
NULL
["has_options"]=>
string(1) "0"
["required_options"]=>
string(1) "0"
["created_at"]=>
string(19) "2014-05-28 19:18:49"
["updated_at"]=>
string(19) "2014-05-28 19:20:21"
["category_id"]=>
string(3) "236"
["visibility"]=>
string(1) "4"
}
Merci à l'avance.
Enfin je l'ai trouvé! Tous les exemples que j'ai trouvés jusqu'à présent suggèrent addAttributeToSelect ('name') ou addAttributeToSelect (array ('name')) qui ne fonctionnait pas du tout. L'ajout d'un type de jointure a résolu cela pour moi. Il faut probablement faire attention à ne pas ajouter trop de jointures de cette façon ou la performance peut prendre un coup sérieux :-) – Saustrup
Note rapide: le second paramètre est $ jointype, et les valeurs valides semblent être fausses, "internes" ou "gauches" . – Saustrup
Je suis content que ce morceau de code soit utile :) – Krzysztof