Magento集合迭代器 - 无法获得其他属性

Krz*_*tof 4 magento magento-1.8

当我使用资源迭代器时,我无法从产品集合中获得额外的属性'name'.

我的产品系列:

        $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');
Run Code Online (Sandbox Code Playgroud)

迭代器:

Mage::getSingleton('core/resource_iterator')->walk($productCollection->getSelect(), array(array($this, 'generateXml')));
Run Code Online (Sandbox Code Playgroud)

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"
}
Run Code Online (Sandbox Code Playgroud)

提前致谢.

Krz*_*tof 8

代替:

(...)
$productCollection->addAttributeToSelect('name')
(...)
Run Code Online (Sandbox Code Playgroud)

应该:

(...)
$productCollection->addAttributeToSelect(array('name'),'inner')
(...)
Run Code Online (Sandbox Code Playgroud)