3

我正试图让这段代码在 magento 1.7.0 中工作......

它只显示magento占位符图像...

如果我将“image”更改为“small_image”,它可以正常工作

一切都在后端设置,为产品图像选择单选按钮......我也清除了缓存......

这发生在 list.phtml 文件中......

有人可以告诉我我做错了什么或为什么它不工作......我一直在搜索,经过 3 天的搜索,我找到了一个解决方案,但它没有工作......

$_item 未定义,因此 ai 调用非对象错误...

这是答案的链接

在 Magento 中获取基本产品图像

<?php echo $this->helper('catalog/image')->init($_product, 'image')->resize(171, 259);
4

5 回答 5

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);
于 2013-04-08T20:04:31.083 回答
1

有一些我在论坛中没有找到的东西。所以我分享我关于这个问题的解决方案,你必须改变
Mage::setIsDeveloperMode(true);Mage::setIsDeveloperMode(false);

于 2015-03-22T09:11:48.623 回答
1

由于这个帖子首先出现在谷歌中,所以我把我的经验放在这里。上述解决方案不适用于 view.phtml/media.phtml 模板。那里的属性已经被加载。在我的情况下,它不起作用,因为服务器的内存限制不足以用于图像调整大小的过程。它确实适用于默认媒体模板 (resize(56)),因为它使用已经生成的默认尺寸。我在 index.php 中添加了 `ini_set('memory_limit', '1024M')' 来修复它。

我没有马上想到它,因为我的 php.ini 已经设置为 1024M。Magento 在 .htaccess (php value memory_limit -1) 中覆盖它,这对我的配置不起作用。

于 2015-05-30T08:24:41.110 回答
0

在我阅读了@Meyer 所说的内容后,我把它修好了。确保将开发人员模式设置为false , 这可以从根.htaccess 文件中通过将其设置为文件末尾来完成:

SetEnv MAGE_IS_DEVELOPER_MODE "true"

这将做的是设置:

Mage::setIsDeveloperMode(true);Mage::setIsDeveloperMode(false);index.php 文件中

于 2016-11-24T03:40:31.567 回答
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());

平桌

这可能是由平板电脑引起的。检查您是否启用了平面表:

系统 > 配置 > 目录 > 目录 > 前端 > 使用平面目录产品

如果是,请检查平面表是否包含图像属性:

describe catalog_product_flat_1; // number varies depending on store

如果图像属性不是平面表的一部分,只需将以下代码添加到 app/etc/config.xml 即可将其添加到表中

<config>
    <frontend>
        <product>
            <collection>
                <attributes>
                    <image />
               </attributes>
            </collection>
        </product>
    </frontend>
</config>
于 2017-01-06T12:59:52.777 回答