有谁能给予我一个提示,关于如何加载产品的媒体集沿着收集?
我得到的集合是这样的:
$collection = Mage::getModel('catalog/product')->getCollection()
->addStoreFilter($storeId)
->addAttributeToFilter('status', Mage_Catalog_Model_Product_Status::STATUS_ENABLED);
foreach ($collection as $product) {
var_dump($product->getMediaGalleryImages());
}
但是getMediaGalleryImages()返回null
。我知道我可以用$product = Mage::getModel('catalog/product')->load($product->getId())
单独加载每个产品,但我想避免这样做,因为这会导致不必要的工作量。
7条答案
按热度按时间4dbbbstv1#
如果有人在寻找另一种方法,我发现这是工作(在只有一种情况下,所以没有保证!):
确保先执行
$collection->addAttributeToSelect(’image’);
,然后在遍历集合产品时执行:我不确定是否有必要这么做,但是我很着急。在我的特殊情况下,我试图使用
$product->getImageUrl();
来获取图像URL,这种方法对我很有效。希望对其他人有帮助。
tzcvj98z2#
最近我也曾这样做过,方法最快:
txu3uszq3#
试试这个
llew8vvj4#
它可以直接在循环中使用:
kmbjn2e35#
您必须用途:
参考:http://www.magentocommerce.com/boards/viewthread/29639/
ewm0tg9j6#
处理涉及产品的自定义集合的秘诀是
init
方法的第三个参数...至少对我来说是这样。这样我就不需要加载整个产品并运行代价高昂的查询。因此,有了我的自定义
$product
(它表示Mage_Catalog_Model_Product
的一个示例,但来自我的自定义集合),我可以执行以下操作:我还需要将
image
属性添加到我的自定义集合中,我通过将->addAttributeToSelect(['image'])
添加到该集合中来实现这一点。您也可以相应地调整图像大小:
pzfprimi7#
以下是一个将媒体集添加到收藏集的函数:
下面是它的用法示例: