【问题标题】:Magento: How to get an image by label?Magento:如何按标签获取图像?
【发布时间】:2012-10-23 13:21:54
【问题描述】:

我还有一个问题要问你们:P

在产品网格视图中,当您将鼠标悬停在图像上时,我想更改图像。 我也想切换的图像应该有一个标签名'back'。

我几乎拥有它..:P

当我在 media.phtml 中使用此代码时:

<?php $imageByLabel = $_product->getMediaGalleryImages()->getItemByColumnValue('label', 'back');?>
<?php echo $this->helper('catalog/image')->init($_product, 'image', $label->getFile())->resize(235, 350);?>

它返回如下内容:http://www.mywebsite.com/product/images/image1 当我在图像的源属性中使用它时,它会显示正确的图像。

但是当我在目录/产品/list.phtml 中使用此代码时,我收到以下错误:

致命错误:调用 C:\Development\FabriqMagento\app\design\frontend\default\fabriq\template\catalog\product\list.phtml 中非对象的成员函数 getItemByColumnValue() 第 95 行

PS:第 95 行是以下行:

<?php $imageByLabel = $_product->getMediaGalleryImages()->getItemByColumnValue('label', 'back');?>

任何帮助表示赞赏:)

【问题讨论】:

    标签: image magento view grid label


    【解决方案1】:

    如果您查看您的代码,$imageByLabel 没有做任何事情,因此不需要它。

    试试:

    <?php echo Mage::getModel('catalog/product')->load($_product->getId())->getMediaGalleryImages()->getItemByColumnValue('label','black')->getFile();  ?>
    

    来自list.phtml

    【讨论】:

      【解决方案2】:

      对于不是list.phtml:

      $_item = $this->getItem();
      $_product = $_item->getProduct();
      

      @Francis Kim - 方法 - 也可以调整大小

      $_image = Mage::getModel('catalog/product')->load( $_product->getId() )->getMediaGalleryImages()->getItemByColumnValue('label','FRONTSHOP');
      echo $this->helper('catalog/image')->init($_product, 'thumbnail', $_image->getFile())->resize(75);
      

      我发现的唯一问题是它不适用于排除值

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-07
        • 2016-04-20
        • 2017-06-14
        相关资源
        最近更新 更多