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


Adding attributes to collection requests in 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)取消设置任何字段。

我是否在做傻事/做错事/两者兼而有之?

提前谢谢。

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

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

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

而不是

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

您将获得所需的数据。