3

我在 System -> Configuration -> Catalog -> Product Image Placeholders 的后端设置了产品占位符图像

我可以使用以下代码在我的一个视图中以编程方式成功访问产品占位符图像:

$this->getSkinUrl($this->helper('catalog/image')->init(
Mage::getModel('catalog/product'), 'small_image'));

我的问题是以上返回:

http://x.dev/skin/frontend/base/default/http://x.dev/media/catalog/product/cache/7/small_image/0dc2d03fe217f8c83829496872af24a0/placeholder/default/logo_4.jpg*

似乎 getSkinUrl 做了它所说的并将皮肤路径添加到字符串中,这是我真正的问题,要解决我认为我会删除 getSkinUrl 的问题:

$this->helper('catalog/image')->init(
Mage::getModel('catalog/product'), 'small_image');

但是上面的代码抛出:

PHP Fatal error:  Allowed memory size of 268435456 bytes exhausted

谁能看到这个问题,我似乎做得更少,而且似乎陷入了一个循环。

或者有人知道另一种方法吗?我真的被困住了,我真的不想硬编码。

谢谢

4

1 回答 1

13

非常感谢@Lucasmus 让我走上正轨。

我最终以一种 hacky 的方式解决了这个问题,但它确实有效。

Mage::getModel('catalog/product')->getSmallImageUrl(200,200);

这将为您提供 System -> Configuration -> Catalog -> Product Image Placeholders 中设置的产品占位符图像

编辑

正如@Tyler V 指出的那样,这是一种已过时的方法,如果您不想使用它,可以使用与该方法相同的逻辑,它有点冗长:

    (string)Mage::helper('catalog/image')->init(
        Mage::getModel('catalog/product'),
        'small_image'
    )->resize(200, 200);
于 2012-10-06T17:52:44.883 回答