3

我还有一个问题要问你们: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 当我在图像的源属性中使用它时,它会显示正确的图像。

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

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

PS:第95行是以下行:

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

任何帮助表示赞赏:)

4

2 回答 2

5

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

尝试:

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

list.phtml

于 2012-11-01T01:30:26.617 回答
1

对于不是 list.phtml:

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

@Francis Kim - 方法 - 也有 resiz

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

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

于 2015-02-20T10:05:21.270 回答