php - 尝试获取 Magento 产品图片 - 只获取一张图片

标签 php magento

我正在尝试在 Magento 1.7.0.2 中获取一组产品图片 URL。这是我当前的(例如稍微复杂的)代码:

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 取代了,但我不明白为什么。我唯一能想到的是某些东西是通过引用而不是值传递的,但如果是这种情况,我看不出发生了什么。

最佳答案

代码

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

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

尝试使用

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

关于php - 尝试获取 Magento 产品图片 - 只获取一张图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15769657/

相关文章:

PHP图表库解决方案

php - 这段代码真的能对抗 SQL 注入(inject)吗?

mysql - 将站点移至暂存区后未找到基表或 View

php - 使用 PHPUnit : Problems with Memcache sessions 测试 Magento

magento - 如何使用带有 Oauth 的 magento REST api 的 POSTMAN REST 客户端。如何获取 Token 和 Token Secret?

php - 忽略正则表达式中的特定标签 - 负向前瞻

php - 在 MySql 中订购多个表

php - 如何使用PHP检查数据库中是否存在用户

javascript - Uncaught ReferenceError : jQuery is not defined in magento site

magento - 如何在 Magento 数据库中启用 exception.log 和 system.log?