Как переписать коллекцию? - PullRequest
2 голосов
/ 11 марта 2010

Я хотел бы переписать коллекцию, возвращаемую Mage::getResourceModel('sales/order_collection');

Моя цель - переписать этот ресурс, чтобы я мог отфильтровать коллекцию для конкретного Магазина.

Есть идеи, как это сделать?Я попытался напрямую переписать сбор модуля продаж / заказа, но безуспешно.Я смог переписать продажи / заказ сам, но не коллекцию, потому что когда я вызываю getCollection () , он возвращает

Неустранимая ошибка: вызов неопределенного метода Mage_Sales_Model_Mysql4_Order :: getCollection ()

1 Ответ

2 голосов
/ 17 марта 2010

Я смог переписать, добавив следующие строки в config.xml

<global>
<!-- -->
<models>
  <sales_mysql4>
            <rewrite>
<order_collection>Company_ModelName_Model_Mysql4_Order_Collection</order_collection>
            </rewrite>
   </sales_mysql4>
</models>
<!-- -->
</global>

Затем я добавляю класс Collection.php в папку Model / Mysql4 / Order, которая расширяет Mage_Sales_Model_Mysql4_Order_Collection

Несмотря на то, что это переопределяет класс сбора заказов, он выдает ошибку (вызов функции-члена 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'); $ Галерею-> addAttributeToSelect ( '*');
$ collection-> joinAttribute ('billing_firstname', 'order_address / firstname', 'billing_address_id', null, 'left');

Я думаю, что это ошибка в Magento. Что вы думаете?

Спасибо Марготс

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...