3

我正在尝试在 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 中,我得到了 somefolder/a.jpg 和 somefolder/b.jpg。在第二个 foreach 中,我得到 somefolder/b.jpg两次

不知何故 a.jpg 被 b.jpg 取代,但我不知道为什么。我唯一能想到的是某些东西是通过引用而不是值传递的,但如果是这种情况,我看不出发生了什么。

4

1 回答 1

1

代码

... = $this->helper('目录/图像')->...

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

尝试使用

... = (string)$this->helper('catalog/image')->...
于 2013-04-03T06:08:07.860 回答