Magento быстрый вопрос getResourceModel - PullRequest
6 голосов
/ 02 августа 2011

Какой класс (если есть) вызывается с этой строкой кода?

Mage::getResourceModel('sales/order_invoice_collection')

По сути, я пытаюсь выяснить, к какой таблице базы данных осуществляется доступ с помощью этой модели ресурсов и как я могу это настроить. Спасибо!

Ответы [ 3 ]

14 голосов
/ 02 августа 2011

Класс, который вы ищете, это:

Mage_Sales_Model_Mysql4_Order_Invoice_Collection

находится в app/code/core/Mage/Sales/Model/Mysql4/Order/Invoice/Collection.php.

Если вы посмотрите на конфигурацию для модуля продаж app/code/core/Mage/Sales/etc/config.xml, вы можете увидеть имя таблицы в определении моделей ресурсов:

<config>
    <global>
        <models>
            <sales_mysql4>
                <entities>
                    ...
                    <invoice><table>sales_flat_invoice</table></invoice>
                    ...
                </entities>
            </sales_mysql4>
        </models>
    </global>
</config>

Чтобы узнать больше о том, как Magento взаимодействует с базой данных, вам следует прочитать о моделях, моделях ресурсов и коллекциях:

http://www.magentocommerce.com/knowledge-base/entry/magento-for-dev-part-5-magento-models-and-orm-basics

5 голосов
/ 02 августа 2011

Попробуйте, чтобы получить класс, полученный в результате оператора:

$obj = Mage::getResourceModel('sales/order_invoice_collection');
print get_class($obj);
4 голосов
/ 02 августа 2011

В данном случае это загрузка

code/Core/Mage/Sales/Model/Mysql4/Order/Invoice/Collection.php 

который является именем класса:

Mage_Sales_Model_Mysql4_Order_Invoice_Collection

Это можно определить, посмотрев файл config.xml:

code/Core/Mage/Sales/etc/config.xml. 

В нем под тегом models находится тег продаж, который вы знаете по «продажам» перед косой чертой в строке. Там он определяет модель ресурса как sales_mysql4. Итак, если вы позвоните:

Mage::getResourceModel('module/everything_else')

загруженный файл будет:

Module/Model/{contents of resourceModel tag}/Everything/Else.php

Надеюсь, это поможет.

...