Magento:为什么要加载集合而不是直接加载地址?

时间:2012-10-01 08:00:57

标签: magento patch

我们收到了以下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);

原始补丁比我的解决方案有什么优势?

编辑:

来自支持的解释是:

  

[...]这个决定是设计的,在创建此代码时是合适的。

1 个答案:

答案 0 :(得分:4)

这种补丁的唯一原因似乎是编辑最少的行数。

在Magento2中,这是以第二种方式实现的:

$address = Mage::getModel('Mage_Sales_Model_Order_Address')->load($addressId);