我希望有人可以帮助我解决这个问题。我正在尝试使用集合从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)
取消设置任何字段。
我做了什么愚蠢/错误/两者兼而有之?
提前致谢。
答案 0 :(得分:4)
这是因为您在集合上调用getData()
,而不是在此集合的产品上调用。
我从未真正分析过为什么会这样,但如果你使用
foreach ($collection as $product) {
var_dump($product->getData());
}
而不是
$collection->load();
var_dump($collection->getData());
您将获得您期望的数据。