4

我希望有人能帮我解决这个问题。我正在尝试使用集合从 Magento 目录模型中加载一些数据。代码如下所示:

$model = Mage::getModel('catalog/product');
$collection = $model->getCollection();
$collection->addAttributeToSelect('short_description');
$collection->addFieldToFilter('SKU',array('like' => array('%EBOOK%')));
$collection->load();
var_dump($collection->getData());

这会生成包含平面目录产品表中所有字段的对象转储,但不会生成我使用该$collection->addAttributeToSelect()方法请求的字段。无论我使用此方法指定什么字段(甚至是“*”),我都无法让集合返回其标准字段集以外的任何内容。我也无法取消设置任何$collection->removeFieldFromSelect(NULL)应该使用的字段。

我在做一些愚蠢/错误/两者兼而有之的事情吗?

提前致谢。

4

1 回答 1

4

这是因为您调用getData()的是集合,而不是该集合的产品。

我从来没有真正分析过为什么会发生这种情况,但如果你使用

foreach ($collection as $product) {
    var_dump($product->getData());
}

代替

$collection->load();
var_dump($collection->getData());

你会得到你期望的数据。

于 2012-04-25T09:09:45.497 回答