在Magento中向集合请求添加属性

时间:2012-04-24 18:40:20

标签: php magento

我希望有人可以帮助我解决这个问题。我正在尝试使用集合从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)取消设置任何字段。

我做了什么愚蠢/错误/两者兼而有之?

提前致谢。

1 个答案:

答案 0 :(得分:4)

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

我从未真正分析过为什么会这样,但如果你使用

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

而不是

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

您将获得您期望的数据。