【发布时间】:2011-08-17 17:28:04
【问题描述】:
我在 magento 模板中遇到了 foreach 循环问题:
$cats = Mage::helper('catalog/category')->getStoreCategories();
foreach ($cats as $cat) {
if($cat->getIsActive()&&$cat->getProductCount()) {
echo "<div class=\"grid_6\">";
echo $this->getLayout()->createBlock('catalog/product_new')
->setTemplate('catalog/product/new.phtml')
->setCategoryId($cat->getId())
->setColumnCount(2)
->setBlockTitle("Just Added in <a href=".$cat->getUrl().">".$cat->getName()."</a>")
->toHtml();
echo "</div>";
}
}
导致相同的块被重复 4 次(我有 4 个主要类别),而它应该显示 4 个不同的块,每个类别一个。就好像 $cat->getId()、$cat->getName() 和 $cat->getUrl() 语句不会在每次新迭代时更新。
我在这里做错了什么?
谢谢...
【问题讨论】:
-
您是否对 $cats 进行了转储,以查看其中存储的数据是否符合您的预期?
-
嗨,Jrod - 是的,我有,确实如此。如果我回显 $cat->getName() 我会得到正确的猫名......正是这个 getLayout 命令以某种方式无法获得正确的数据。