假设我在magento中创建了一个表对象 -
$model = Magento::getModel('table1')
$model->getCollection()->getFirstItem->setname('newname');
但我不保存它。我现在不想将它存储在db中。
现在我做
$model2 = Mage::getSingleton('table1')
# It should return same table object.
$name = $model->getCollection()->getFirstItem->getname();
我没有得到$ name作为newname,上面的行触发一个sql并从DB中获取名称,逻辑上如果我从singleton获取相同的对象,那么我应该能够将$ name值作为newname检索。
答案 0 :(得分:4)
您的模型的第一个请求使用getModel
。这将检索实例模型。
模型用户getSingleton
的第二个请求。这实例化一个实例模型并将其注册为单例。从现在开始,对getSingleton
或getModel
的未来请求将返回相同的对象。但是,在将模型注册为单例之前使用getModel
实例化的模型将保持其实例状态。
“按设计工作”