我在 System -> Configuration -> Catalog -> Product Image Placeholders 的后端设置了产品占位符图像
我可以使用以下代码在我的一个 View 中以编程方式成功访问产品占位符图像:
$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
谁能看到这个问题,我似乎做得更少,而且似乎陷入了一个循环。
或者有人知道另一种方法吗?我真的被困住了,我真的不想硬编码。
谢谢
最佳答案
非常感谢@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);
关于Magento 产品占位符图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12744895/