我可以通过在 config.xml 中添加以下几行来重写
<global>
<!-- -->
<models>
<sales_mysql4>
<rewrite>
<order_collection>Company_ModelName_Model_Mysql4_Order_Collection</order_collection>
</rewrite>
</sales_mysql4>
</models>
<!-- -->
</global>
然后我在扩展 Mage_Sales_Model_Mysql4_Order_Collection 的 Model/Mysql4/Order 文件夹中添加类 Collection.php
即使这覆盖了订单集合类,它在运行以下代码时也会给出错误(调用非对象上的成员函数 joinAttribute()):
Mage::getResourceModel('sales/order_collection')->addAttributeToSelect('*')->joinAttribute('billing_firstname', 'order_address/firstname', 'billing_address_id', null, 'left');
如果将上面的行重新排列为以下 3 行,则不会出错:
$collection = Mage::getResourceModel('sales/order_collection');
$collection->addAttributeToSelect('*');
$collection->joinAttribute('billing_firstname', 'order_address/firstname', 'billing_address_id', null, 'left');
我认为这是 Magento 中的一个错误。你怎么看?
谢谢玛戈