试图获得Magento产品图片 - 只获得一张图片

时间:2013-04-02 16:44:36

标签: php magento

我正在尝试在Magento 1.7.0.2中获取一系列产品图片网址。这是我当前的(稍微复杂的)代码:

foreach ($_product->getMediaGalleryImages() as $_image) {
    $tmp = array(
        'image' => $this->helper('catalog/image')
                    ->init($this->getProduct(), 'thumbnail', $_image->getFile())
                    ->constrainOnly(true)
                    ->keepAspectRatio(true)
                    ->keepFrame(false)
                    ->resize(800, null),
        'thumb' => $this->helper('catalog/image')
                    ->init($this->getProduct(), 'thumbnail', $_image->getFile())
                    ->constrainOnly(true)
                    ->keepAspectRatio(true)
                    ->keepFrame(false)
                    ->resize(227, null),
        'label' => $this->htmlEscape($this->getImageLabel())
    );

    echo $tmp['image'] . '<br>';

    $all_imgs[] = $tmp;
}

foreach ($all_imgs as $blah) {
    echo $blah['image'] . '<br>';
    echo $blah['thumb'] . '<br>';
    echo $blah['label'] . '<br>';
}

我有两张照片,a.jpg和b.jpg。在第一个foreach我得到一些文件夹/ a.jpg和somefolder / b.jpg。在第二个foreach中,我得到了一些文件夹/ b.jpg 两次

不知何故,a.jpg正被b.jpg所取代,但我无法弄明白为什么。我唯一能想到的是通过引用而不是值传递某些东西,但如果是这种情况,我无法看到发生的位置。

1 个答案:

答案 0 :(得分:1)

代码

... = $ this-&gt; helper('catalog / image') - &gt; ...

返回一个对象,而不是字符串。这个对象是单例,这意味着它没有实例,数据被替换。

尝试使用

... = (string)$this->helper('catalog/image')->...