问题:
我正在追踪一个问题,即我的模型上的 getCollection() 没有返回对象,而是在运行以下代码时返回 false:
var_dump(Mage::getResourceModel('referrer/transaction_collection'));
奇怪的是,它在本地返回一个对象,而不是在它正在部署的服务器上。
我试过的:
- 该代码使用 SVN 部署,在本地和实时是相同的代码。这向我表明这是一个区分大小写的问题(它是在 Mac 上开发的),但是我找不到它。
- 我已经清除了所有缓存。
- 该模块已成功安装,我可以在数据库中看到该表。
- var/log/system.log 中没有任何内容
- var/report 中没有生成报告
- 所有权是正确的。
- 权限没问题。
我已经没有如何调试这个的想法了,我错过了任何 Magento 陷阱吗?
我的代码:
引用者/etc/config.xml
<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
<TBP_Referrer>
<version>1.0</version>
</TBP_Referrer>
</modules>
<global>
<models>
<referrer>
<class>TBP_Referrer_Model</class>
<resourceModel>referrer_mysql4</resourceModel>
</referrer>
<referrer_mysql4>
<class>TBP_Referrer_Model_Mysql4</class>
<entities>
<transaction><table>referrer_transactions</table></transaction>
</entities>
</referrer_mysql4>
</models>
<resources>
<referrer_setup>
<setup>
<module>TBP_Referrer</module>
</setup>
<connection>
<use>core_setup</use>
</connection>
</referrer_setup>
<referrer_write>
<connection>
<use>core_write</use>
</connection>
</referrer_write>
<referrer_read>
<connection>
<use>core_read</use>
</connection>
</referrer_read>
</resources>
</global>
</config>
推荐人/模型/Transaction.php
class TBP_Referrer_Model_Transaction extends Mage_Core_Model_Abstract {
protected function _construct() {
$this->_init('referrer/transaction');
}
}
推荐人/模型/mysql4/Transaction.php
class TBP_Referrer_Model_Mysql4_Transaction extends Mage_Core_Model_Mysql4_Abstract {
protected function _construct() {
$this->_init('referrer/transaction', 'transaction_id');
}
}
Referrer/Model/mysql4/Transaction/Collection.php
class TBP_Referrer_Model_Mysql4_Transaction_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract {
protected function _construct() {
$this->_init('referrer/transaction');
}
}
推荐人/sql/referrer_setup/install-1.0.php
$installer = $this;
$installer->startSetup();
$installer->run("
CREATE TABLE referrer_transactions(
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`referrer_id` int(11) DEFAULT NULL,
`percentage` int(11) DEFAULT '0',
`order_id` int(11) DEFAULT NULL,
`amount` decimal(11,2) DEFAULT NULL,
`timestamp` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `order_id` (`order_id`),
KEY `referrer_id` (`referrer_id`)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8;
");
$installer->endSetup();