我是Magento的新手.
检查具有给定增量ID的订单是否已存在的正确方法是什么?
显而易见的方式:
$order = Mage::getModel('sales/order')->loadByIncrementId($reservedOrderId);
if ($order) {
Mage::log('already have order with id ' . $reservedOrderId);
return $order;
}
Run Code Online (Sandbox Code Playgroud)
不起作用,因为我得到了一个新的空模型实例.
什么是magento的正确方法,看看我是否没有这个id的模型?
ben*_*rks 13
我在核心代码中看到的最常见的方法只是load()
模型,并检查是否分配了主键.在您的情况下,这将如下所示 - 请注意对逻辑条件($object->getId()
相对$object
)的非常小的调整:
$order = Mage::getModel('sales/order')->loadByIncrementId($reservedOrderId);
if ($order->getId()) {
Mage::log('already have order with id ' . $reservedOrderId);
return $order;
}
Run Code Online (Sandbox Code Playgroud)
这是一个简单的错误,但请记住,在Magento数据模型上加载数据的调用将始终返回对象实例.只有当存储后端有结果时,才会使用数据装饰对象,从而使用主键.