在Magento中最多只能获得3个媒体库图像getMediaGalleryImages

时间:2013-07-24 11:24:28

标签: php magento-1.7

我们目前正在使用以下内容在Magento主页上加载产品的媒体库图片: -

<?php $_images = Mage::getModel('catalog/product')->load($product->getId())->getMediaGalleryImages(); ?>    
<?php if($_images){?>            
    <?php $i=0; foreach($_images as $_image){ $i++; ?>
        <img class="gallery" src="<?php echo $this->helper('catalog/image')->init($product, 'thumbnail', $_image->getFile())->resize(255); ?>" alt="<?php echo $this->htmlEscape($_image->getLabel());?>" title="<?php $this->htmlEscape($_image->getLabel());?>" />
    <?php } ?>
<?php } ?>

这将获得所有产品的媒体库图像,但我们只希望获得最多3个。请有人建议如何重写以上只能获得3个?

我不确定打破foreach循环是否是最好的方法,因此我玩过: -

<?php if (++$i == 3) break; ?>

但这似乎并不一致,只返回最多3个。

提前致谢。

2 个答案:

答案 0 :(得分:0)

通过玩弄想法来管理工作: -

发生变化: -

<?php $i=0; foreach($_images as $_image){ $i++; ?>

要...

<?php $i=0; foreach($_images as $_image) if ($i++ < 5) { $i++; ?>

if循环中的foreach语句确保循环中最多只返回三个。

(我不知道为什么因为对我而言,如果值大于5)。

答案 1 :(得分:0)

在循环之前使用PHP的本机array_slice函数。以下将返回最多3个,您不会浪费时间循环不必要的元素。

array_slice($_images, 0, 3)

http://php.net/manual/en/function.array-slice.php