【发布时间】:2013-09-12 06:19:51
【问题描述】:
我想在 Magento 中遍历一系列产品 ID。在循环中,我将产品的一些自定义属性显示为:
foreach ($products as $product) {
$model = Mage::getSingleton('catalog/product')->load($product['id']);
echo '<br>' . $model->getCredits();
}
问题是如果第一个项目的getCredits() 的值为true,那么所有后续项目都显示true,即使它们没有值true。
但是当我使用Mage::getModel()而不是Mage::getSingleton()时,属性值显示正确。
谁能解释一下这个区别?
【问题讨论】:
-
Mage::getSingleton 获取已经存在的对象。 Mage::getModel 是一个新的对象。
-
@MagikVishal:单例不仅会返回已经存在的对象。它将首先检查对象是否存在,如果不存在,它将创建一个用于所有进一步调用的对象。