我想让这段代码在magento 1.7.0中运行......
它只显示magento占位符图像...
如果我将“image”更改为“small_image”,则可以正常使用
在后端设置了所有内容,为产品图片选择了单选按钮...我也清除了缓存......
这发生在list.phtml文件中......
有人可以告诉我我做错了什么或为什么它不起作用...我一直在搜索我找到一个解决方案3天的搜索后它没有用....
$ _ item未定义,所以我得到一个非对象错误的调用...
这是answere的链接
Get base product image in Magento
<?php echo $this->helper('catalog/image')->init($_product, 'image')->resize(171, 259);
答案 0 :(得分:8)
我会尝试......
a)将addAttributeToSelect('image')
添加到列表块中的产品集合中(假设它是本地的)。
...或......(警告:这是hacky而不是最佳做法)
b)在list.phtml文件中,从您已有的产品ID中加载完整的产品
$productId = $_product->getId();
$_product = Mage::getModel('catalog/product')->load($productId);
echo $this->helper('catalog/image')->init($_product, 'image')->resize(171, 259);
答案 1 :(得分:1)
我在论坛中找不到一些东西。所以我分享我对这个问题的解决方案,你必须改变:
Mage::setIsDeveloperMode(true);
至Mage::setIsDeveloperMode(false);
答案 2 :(得分:1)
由于这个帖子首先出现在谷歌中,我把我的经验放在这里。上述解决方案不适用于view.phtml / media.phtml模板。那里已经加载了属性。在我的情况下,它不起作用,因为服务器的内存限制不足以进行图像大小调整过程。它确实适用于默认媒体模板(resize(56)),因为它使用已生成的默认大小。我将`ini_set('memory_limit','1024M')'添加到我的index.php来修复它。
我没有立刻想到它,因为我的php.ini已经设置为1024M。 Magento在.htaccess(php值memory_limit -1)中覆盖了它,这在某种程度上对我的配置不起作用。
答案 3 :(得分:0)
在我阅读了@Meyer所说的内容后,我解决了这个问题。确保开发者模式设置为 false 这可以通过根 .htaccess文件来完成,方法是将其设置为文件末尾:
SetEnv MAGE_IS_DEVELOPER_MODE "true"
这将做什么设置:
index.php文件中的 Mage::setIsDeveloperMode(true);
到Mage::setIsDeveloperMode(false);
答案 4 :(得分:0)
检查集合是否加载了图像属性:
$productId = 1234;
$product = Mage::getModel('catalog/product')
->load($productId);
echo (string)Mage::helper('catalog/image')->init($product, 'image')->resize(75, 75);
echo (string)Mage::helper('catalog/image')->init($product, 'small_image')->resize(75, 75);
echo (string)Mage::helper('catalog/image')->init($product, 'thumbnail')->resize(75, 75);
如果这只给你一些占位符,那么该集合没有加载图像。
您可以像
那样扩展您的收藏$collection = Mage::getModel('catalog/product')->getCollection()
->addAttributeToSelect('small_image') //or
->addAttributeToSelect('thumbnail') //or
->addAttributeToSelect('image');
或改为使用媒体配置:
$prodImage = Mage::getModel('catalog/product_media_config')->getMediaUrl($product->getThumbnail());
或使用
$prodImage = Mage::getResourceSingleton('catalog/product')->getAttributeRawValue($productId, 'image', Mage::app()->getStore());
FLAT TABLES
这可能是由平台引起的。检查您是否启用了平面表:
系统&gt;配置&gt;目录&gt;目录&gt;前端&gt;使用Flat 目录产品
如果是,请检查平面表是否包含图像属性:
describe catalog_product_flat_1; // number varies depending on store
如果image属性不是平面表的一部分,只需将以下代码添加到app / etc / config.xml
即可将其添加到表中。<config>
<frontend>
<product>
<collection>
<attributes>
<image />
</attributes>
</collection>
</product>
</frontend>
</config>