如何在Magento单自定义模块中使用多个数据库表

如何在Magento单自定义模块中使用多个数据库表,第1张

用数据库表创建一个模块,互动是很简单的。大部分的开发人员使用 magento 模块创建者创建此类的模块。但是,如果你想与多个数据库表的一个模块。以下是模块与两个数据库表的示例。

第 1 步。以下查询与创建您的自定义模块的安装文件。
CREATE TABLE `test` (
`test_id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`name` VARCHAR( 25 ) NOT NULL
) ENGINE = MYISAM

CREATE TABLE `test2` (
`test2_id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`name` VARCHAR( 25 ) NOT NULL
) ENGINE = MYISAM
第 2 步。创建库文件来注册您的模块在 app/etc/modules/Mypackage_Mymodulexml 下
<xml version="10">
<config>
<modules>
<Mypackage_Mymodule>
<active>true</active>
<codePool>local</codePool>
</Mypackage_Mymodule>
</modules>
</config>
第 3 步。模块配置文件应该看起来像以下

应用程序、 代码、 地方/Mypackage/Mymodule/etc/configxml
<xml version="10">
<config>
<modules>
<Mypackage_Mymodule>
<version>010</version>
</Mypackage_Mymodule>
</modules>
<global>
<models>
<Mymodule>
<class>Mypackage_Mymodule_Model</class>
<resourceModel>mymodule_mysql4</resourceModel>
</mymodule>

<!-- model vs db table relation -->
<mymodule_mysql4>
<class>Mypackage_Mymodule_Model_Mysql4</class>
<!-- db table with name test -->
<entities>
<test>
<table>test</table>
</test>
<test2>
<table>test2</table>
</test2>

</entities>
</mymodule_mysql4>
</models>
<resources>
<mymodule_write>
<connection>
<use>core_write</use>
</connection>
</mymodule_write>
<mymodule_read>
<connection>
<use>core_read</use>
</connection>
</mymodule_read>
</resources>
</global>
</config>
第 4 步。现在,创建模型 Testphp 和 Test2php。在这里我们用的表测试和 test2 的处理程序配置这些模型。

/app/code/local/Mypackage/Mymodule/Model/Testphp
<php

class Mypackage_ Mymodule_Model_Test extends Mage_Core_Model_Abstract
{

public function _construct()
{
parent::_construct();
$this->_init('mymodule/test');
}
}

/app/code/local/Mypackage/Mymodule/Model/Test2php
<php

class Mypackage_Mymodule_Model_Test2 extends Mage_Core_Model_Abstract
{

public function _construct()
{
parent::_construct();
$this->_init('mymodule/test2');
}
}
第 5 步。现在,创建模型试验和 test2 的资源模型。在这些文件中我们也设置主键的表测试和 test2。

/app/code/local/Mypackage/Mmodule/Model/Mysql4/Testphp
<php

class Mypackage_Mymodule_Model_Mysql4_Test extends Mage_Core_Model_Mysql4_Abstract
{
public function _construct()
{
$this->_init('mymodule/test', 'test_id');
}
}

/app/code/local/Mypackage/Mmodule/Model/Mysql4/Test2php。
<php

class Mypackage_Mymodule_Model_Mysql4_Test2 extends Mage_Core_Model_Mysql4_Abstract
{
public function _construct()
{
$this->_init('mymodule/test2', 'test2_id');
}
}
第 6 步。创建一个集合类,这样,我们可以从表测试和 test2 检索数据。

/local/Mypackage/Mymodule/Model/Mysql4/Test/Collectionphp
<php

class Mypackage_Mymodule_Model_Mysql4_Test_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract
{
public function _construct()
{
parent::_construct();
$this->_init('mymodule/test');
}
}

/local/Mypackage/Mymodule/Model/Mysql4/Test2/Collectionphp
<php

class Mypackage_Mymodule_Model_Mysql4_Test2_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract
{
public function _construct()
{
parent::_construct();
$this->_init('mymodule/test2');
}
}
所以,现在你有两个表的自定义模块。你的模块可以与这些表与他们的模型和各自的集合,如下所示:
$testModel = Mage::getModel('mymodule/test')
->setName("abcd")
->save();

$test2Model = Mage::getModel('mymodule/test2')
->setName("abcd")
->save();

希望这将帮助你。

以上就是关于如何在Magento单自定义模块中使用多个数据库表全部的内容,包括:如何在Magento单自定义模块中使用多个数据库表、、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9270987.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存