問題:
次のコードを実行すると、モデルの 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');
}
}
リファラー/モデル/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();