所以有一些浮动的代码会得到一个单独的子类别的图像:
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。
答案 0 :(得分:2)
获取图片网址时,或许你做错了。
而非使用
$_img = $this->getCurrentCategory()->getImageUrl();
尝试以下代码
$_img = $cur_category->getImageUrl();
答案 1 :(得分:2)
@RandyHall,您确定$ this-&gt; getCurrentCategory()将从与$ layer-&gt; setCurrentCategory($ cur_category)相同的位置获取类别;将它设置为?
观看源代码here和here。 如您所见,类别设置为图层模型,并从注册表中获取返回类别(通过调用阻止)。
所以我建议你做这样的事情:
$_img = $layer->getCurrentCategory()->getImageUrl();
答案 2 :(得分:2)
foreach ($collection as $cat){
$cur_category = Mage::getModel('catalog/category')->load($cat->getId());
$_img = $cur_category->getImageUrl();
}
在我看来,这就是你想要的目标吗?