Magento的:显示所有类别,但不能得到关联图像(Magento: Displaying all

2019-10-17 15:19发布

我有一个奇怪的,但可能容易解决的局面。

我有一个块下面的代码:

<div class="home-categories">
    <?php $_helper = Mage::helper('catalog/category') ?>
    <?php $_categories = $_helper->getStoreCategories() ?>
    <?php foreach($_categories as $_category): ?>
        <a href="<?php echo $_helper->getCategoryUrl($_category) ?>">
            <img src="<?php echo $_category->getStoreIds(); ?>"/>
            <div class="category-title">
                <p><?php echo $_category->getName(); ?></p>
            </div>
        </a>
      <?php endforeach; ?>
</div>

生成的HTML我得到的返回我所有正确的细节,但IMG SRC。 我做正确吗?

Answer 1:

你,你没有得到的图像URL的原因是,默认情况下,Magento的模型不加载了所有的属性。 这样,您只加载的属性,你需要和你的数据库查询并不昂贵。 下面将做的伎俩。

$_helper = Mage::helper('catalog/category');
$_categories = $_helper->getStoreCategories(false, true, false);
$_categories->addAttributeToSelect('image');

以AA浏览一下getStoreCategories方法定义:

getStoreCategories($sorted=false, $asCollection=false, $toLoad=true)

你想方法返回尚未加载的集合,因此假的,真的,假的论点。 通过类别你循环之前,要确保图像属性也会被载入,这是addAttributeToSelect(“图像”)的调用是什么。

这是比$ _category-更有效>负载($ _category->的getId()); 因为我们不是加载整个实体。 现在,当你遍历你可以做以下的,你应该有图像标记的图像URL类别。

<img src="<?php echo $_category->getImageUrl(); ?>"/>


Answer 2:

其原因是,加载的类集合不包含类别属性,但只有基本的类别数据。 你必须自己加载它们或它们它被加载之前添加到集合(不看一看辅助功能,所以我不能肯定,如果你能做到这一点的调用它...之后)。

最简单的解决办法是更换线路

<img src="<?php echo $_category->getStoreIds(); ?>"/>

<img src="<?php $_category->load( $_category->getId()); echo  $_category->getImageUrl(); ?>"/>


文章来源: Magento: Displaying all categories but cannot get associating images