そのバージョンのMagento(1.3.2.4)の場合、config.xmlファイルで読み取り接続と書き込み接続を指定する必要があります。
の下に、次のようなノード<global>
を追加します。<resources>
<resources>
<yourModelNode_write>
<connection>
<use>core_write</use>
</connection>
</yourModelNode_write>
<yourModelNode_read>
<connection>
<use>core_write</use>
</connection>
</yourModelNode_read>
</resources>
キャッシュを更新してください!
このタイプの構成は、Magentoの今後のリリースではオプションです。構成で指定しない場合、システムはデフォルトの読み取り/書き込み接続をロードします。この機能がいつ実装されたかはわかりませんが、1.6.xに存在します。
1.3.2.4と1.6.xの違いは、Mage_Core_Model_Resource :: getConnection()にあります。
config.xmlで指定されていない場合、1.6.xはデフォルトの読み取り/書き込み接続を返します。
Mage_Core_Model_Resource :: getConnection()
$connConfig = Mage::getConfig()->getResourceConnectionConfig($name);
if (!$connConfig) {
$this->_connections[$name] = $this->_getDefaultConnection($name);
return $this->_connections[$name];
}
1.3.2.4はfalseを返します:
$connConfig = Mage::getConfig()->getResourceConnectionConfig($name);
if (!$connConfig || !$connConfig->is('active', 1)) {
return false;
}
「Zend_Db_Adapter_Abstractを実装していません」というエラーが発生する理由は、Varien_Data_Collection_Db :: setConnection()にあります。
public function setConnection($conn)
{
if (!$conn instanceof Zend_Db_Adapter_Abstract) {
throw new Zend_Exception('dbModel read resource does not implement Zend_Db_Adapter_Abstract');
}
$this->_conn = $conn;
$this->_select = $this->_conn->select();
}
がfalse
接続($ conn)として渡されると、このエラーがスローされます。これは、もちろんfalse
、Zend_Db_Adapter_Abstractのインスタンスではないためです。