我正在尝试基本上创建一个分屏视图,一个充满产品的远程存储库网格,另一个显示网格中的本地存储库。
我认为基本上总结一下,如果你能告诉我如何简单地将远程信息源合并到网格中,我会给予部分功劳......我想我甚至可以从那里处理它。请仔细考虑,我真的不想听到如何在config.xml中配置我的资源,我已经可以用远程数据库来做,我只是无法从中加载对象/集合。
谢谢你们。
答案 0 :(得分:1)
好的 - 所以对于我们这些尝试过这样的事情的人来说,你首先意识到当你想要一个以上的数据库作为你模块中的一个源时......你实际上需要 2 < / em>这样做的模块(如果我错了,有人会插入并纠正我。)
步骤1:创建一个“虚拟”模块以连接远程数据库。这个模块应该只包含etc /和Model / - 没有其他任何东西真正需要。我的config.xml如下所示:
<config>
<modules>
<Mage_RepoDummy>
<version>0.1.0</version>
</Mage_RepoDummy>
</modules>
<global>
<resources>
<repodummy_write>
<connection>
<use>repodummy_database</use>
</connection>
</repodummy_write>
<repodummy_read>
<connection>
<use>repodummy_database</use>
</connection>
</repodummy_read>
<repodummy_setup>
<connection>
<use>core_setup</use>
</connection>
</repodummy_setup>
<repodummy_database>
<connection>
<host><![CDATA[localhost]]></host>
<username><![CDATA[brandrepo]]></username>
<password><![CDATA[*******]]></password>
<dbname><![CDATA[brandrepo]]></dbname>
<model>mysql4</model>
<type>pdo_mysql</type>
<active>1</active>
</connection>
</repodummy_database>
</resources>
<models>
<repodummy>
<class>Mage_RepoDummy_Model</class>
<resourceModel>repodummy_mysql4</resourceModel>
</repodummy>
<repodummy_mysql4>
<class>Mage_RepoDummy_Model_Mysql4</class>
<entities>
<product>
<table>catalog_product_entity</table>
</product>
</entities>
</repodummy_mysql4>
</models>
</global>
<adminhtml>
</adminhtml>
现在您需要以下模型和资源文件:
/Model/Product.php
/Model/Mysql4/Product.php
/Model/Mysql4/Product/Collection.php
在Product.php中:
class Mage_RepoDummy_Model_Product extends Mage_Catalog_Model_Abstract
{
public function _construct()
{
$this->_init('repodummy/product', 'entity_id');
}
}
在Mysql4 / Product.php中
class Mage_RepoDummy_Model_Mysql4_Product extends Mage_Catalog_Model_Resource_Abstract
{
public function __construct()
{
parent::__construct();
$this->setType(Mage_Catalog_Model_Product::ENTITY)
->setConnection('repodummy_read', 'repodummy_write');
$this->_productWebsiteTable = $this->getTable('catalog/product_website');
$this->_productCategoryTable = $this->getTable('catalog/category_product');
}
}
并在Mysql4 / Product / Collection.php
中class Mage_RepoDummy_Model_Mysql4_Product_Collection extends Mage_Catalog_Model_Resource_Collection_Abstract {
protected function _construct()
{
$this->_init('repodummy/product');
}
}
只是准系统类型的东西,就像你对Magento中的任何基本模型所做的那样。现在从另一个模块,它被绑定到任何其他数据库,可能/可能是您的本地实例,您可以通过调用您的虚拟对象来访问此远程数据存储,如果您想测试它只是做一些简单的事情:
$test = Mage::getModel('repodummy/product')->load(10367);
die("::".$test->getSku()."::");
......除了你使用的是远程数据库,这个模型应该像大多数情况下的典型产品模型一样运行,编码很快!