我希望有人能帮我解决这个问题。我正在尝试使用集合从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());
您将获得所需的数据。