Magento - 所有类别都有相同的图片

时间:2012-11-27 04:16:05

标签: image magento categories catalog

所以有一些浮动的代码会得到一个单独的子类别的图像:

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。

3 个答案:

答案 0 :(得分:2)

获取图片网址时,或许你做错了。

而非使用

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

尝试以下代码

$_img = $cur_category->getImageUrl();

答案 1 :(得分:2)

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

观看源代码herehere。 如您所见,类别设置为图层模型,并从注册表中获取返回类别(通过调用阻止)。

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

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

答案 2 :(得分:2)

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

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