我们收到了以下Magento核心补丁:
Index: app/code/core/Mage/Adminhtml/controllers/Sales/OrderController.php
===================================================================
--- app/code/core/Mage/Adminhtml/controllers/Sales/OrderController.php
app/code/core/Mage/Adminhtml/controllers/Sales/OrderController.php (working copy)
@@ -718,6 +718,7 @@
$addressId = $this->getRequest()->getParam('address_id');
$address = Mage::getModel('sales/order_address')
->getCollection()
+ ->addFilter('entity_id', $addressId)
->getItemById($addressId);
if ($address) {
Mage::register('order_address', $address);
在我看来,这相当于
$addressId = $this->getRequest()->getParam('address_id');
$address = Mage::getModel('sales/order_address')->load($addressId);
if ($address->getId()) {
Mage::register('order_address', $address);
原始补丁比我的解决方案有什么优势?
编辑:
来自支持的解释是:
[...]这个决定是设计的,在创建此代码时是合适的。
答案 0 :(得分:4)
这种补丁的唯一原因似乎是编辑最少的行数。
在Magento2中,这是以第二种方式实现的:
$address = Mage::getModel('Mage_Sales_Model_Order_Address')->load($addressId);