【发布时间】:2011-08-02 17:06:04
【问题描述】:
这行代码调用了什么类(如果有的话)?
Mage::getResourceModel('sales/order_invoice_collection')
基本上,我正在尝试找出使用此资源模型访问的数据库表以及如何调整它。谢谢!
【问题讨论】:
这行代码调用了什么类(如果有的话)?
Mage::getResourceModel('sales/order_invoice_collection')
基本上,我正在尝试找出使用此资源模型访问的数据库表以及如何调整它。谢谢!
【问题讨论】:
你要找的课程是这样的:
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 如何与数据库交互的更多信息,您应该阅读模型、资源模型和集合:
【讨论】:
试试这个来得到一个语句产生的类:
$obj = Mage::getResourceModel('sales/order_invoice_collection');
print get_class($obj);
【讨论】:
在这种情况下它正在加载
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”中知道。在那里它将资源模型定义为 sales_mysql4。 所以,如果你打电话:
Mage::getResourceModel('module/everything_else')
加载的文件将是:
Module/Model/{contents of resourceModel tag}/Everything/Else.php
希望对您有所帮助。
【讨论】: