1

因此,有一些代码可以获取单个子类别的图像:

foreach ($collection as $cat){
    $cur_category = Mage::getModel('catalog/category')->load($cat->getId());
    $layer = Mage::getSingleton('catalog/layer');   
    $layer->setCurrentCategory($cur_category);
    $_img = $this->getCurrentCategory()->getImageUrl();
}

$cat我要获取图像的子类别在哪里。我遇到的问题 - 子类别的图像都是一样的!子类别中的第一个图像是显示在页面上的图像。链接和名称都是正确的:(这也在for循环中)

<div>
    <a href="<?php echo $helper->getCategoryUrl($cat);?>">
        <img src="<?php echo $_img; ?>" title="<?php $cat->getName() ?>"/>
        <cite><?php echo $cat->getName();?></cite>
    </a>
</div>

我正在做这个修改catalog/category/view.phtml。它比显示的要多一些,但这是所有相关信息。

编辑

所有类别都有自己独特的图像,这些图像已正确上传。它们正确显示在管理员中。此外,$cat->getId()正在为各个子类别返回正确的 id。

4

3 回答 3

2

获取图片网址时,您可能做错了。

而不是使用

$_img = $this->getCurrentCategory()->getImageUrl(); 

试试下面的代码

$_img = $cur_category->getImageUrl();
于 2012-11-27T05:55:47.770 回答
2

@RandyHall,您确定 $this->getCurrentCategory() 将从与 $layer->setCurrentCategory($cur_category); 相同的位置获取类别吗?将其设置为?

在此处此处观看源代码。如您所见,类别设置为层模型并从注册表获取返回类别(通过调用块)。

所以我建议你做这样的事情:

$_img = $layer->getCurrentCategory()->getImageUrl();
于 2012-11-27T15:13:01.020 回答
2
foreach ($collection as $cat){
    $cur_category = Mage::getModel('catalog/category')->load($cat->getId());
    $_img = $cur_category->getImageUrl();
}

在我看来,这就是你想要的吗?

于 2012-11-27T15:47:53.493 回答