这行代码调用了什么类(如果有的话)?
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如何与数据库交互的信息,您应该阅读模型、资源模型和集合:
http://www.magentocommerce.com/knowledge-base/entry/magento-for-dev-part-5-magento-models-and-orm-basics试试下面的命令获取语句生成的类:
$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'中知道它。在这里,它将资源模型定义为sales_mysql4。所以,如果你调用:
Mage::getResourceModel('module/everything_else')
加载的文件将是:
Module/Model/{contents of resourceModel tag}/Everything/Else.php
希望对你有帮助。