magento -- 新建带数据库表的自定义模块

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:
+关注继续查看

如果你想在Magento中创建一个自定义模块,并且需要存储和使用自定义数据,下面就是你需要的步骤。我将假定你已经知道关于Magento模块,它们是什么以及如何创建它们。此外,我也假定你已经知道在Magento模块的基本结构。

 

下面这段放到你的config.xml的适当位置

         <global> <ymodel> <class>YNamespace_YModule_Model</class> <resourceModel>quotes_mysql4</resourceModel> </ymodel> <quotes_mysql4> <class>YNamespace_Ymodule_Model_Mymodel</class> <entities> <mymodel> <table>ymodel_ytable</table> </mymodel> </entities> </quotes_mysql4> </global> 

 

然后新建模块

 

<?php class YNamespace_Ymodule_Model_Mymodel extends Mage_Core_Model_Abstract { public function _construct() { parent::_construct(); $this->_init('ymodel/mymodel'); } } 

 

正如你可以看到在这个类的构造中它初始化了在配置文件中定义的模块。由于模型使用资源(Resources),你现在需要创建一个资源模块

 

<?php class Ynamespace_Ymodel_Model_Mysql4_Ymodel extends Mage_Core_Model_Mysql4_Abstract { public function _construct() { $this->_init('ymodel/mymodel', 'id'); } } 

 

因此,使用这种资源,您现在可以访问表并添加/修改。但是你不能显式创建一个此类的对象做到这一点。

 

$model=Mage::getModel("ymodel/mymodel") ->setName("Subesh") ->setLastname("Pokhrel") ->save();

 

这样会在数据库新建一行数据,其中name 和lastname 是表的字段。

下面的代码可以用来编辑一行数据。

 

$model=Mage::getModel("ymodel/mymodel")->load($id) ->setName("Subesh") ->setLastname("Pokharel") ->save(); 

 

现在要查询数据库还需要一个过程,在此之前,我先描述下集合(collection)。想象一下集合是一个包含对象的数组,当你从数据库查询到结果,结果中的每一行就是不同的对象。下面是新建一个集合(collection)的代码

 

<?php class Ynamespace_Ymodel_Model_Mysql4_Mymodel_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract { public function _construct() { parent::_construct(); $this->_init('ymodel/mymodel'); } } 

 

查询这个表的所有行

 

$allCollection=Mage::getModel("ymodel/mymodel")->getCollection(); 

 

如果需要的话,你可以给上面的代码增加一些过滤条件

要拿到单独的行你可以对集合做循环

 

        foreach($allCollection as $objRow){ print_r($objRow); } 

 

源文:http://www.bageshsingh.com/bagesh-blog/2010/04/using-custom-table-for-custom-module-in-magento/

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
4月前
|
JSON 数据格式 Python
学到了,学到了导入模块还能这么操作
学到了,学到了导入模块还能这么操作
|
8月前
Odoo 菜单定义和修改学习总结
Odoo 菜单定义和修改学习总结
132 0
|
关系型数据库 Go 数据库
如何将ABAP透明表的内容导入PostgreSQL数据库
如何将ABAP透明表的内容导入PostgreSQL数据库
128 0
如何将ABAP透明表的内容导入PostgreSQL数据库
|
数据库
Confluence 6 数据库表和参考
扩展下面的链接来显示主要的表格和每一个表格的外键。  单击这里来显示/隐藏表格... AO_9412A1_AOUSER ID AO_9412A1_USER_APP_LINK USER_ID fk_ao_941...
1601 0
Confluence 6 导入模板的备注
创建你自己的模板组件(template bundles)。你可以使用插件(add-on,也可以被称 plugin)来创建模板组件然后将这些模板组件上传到你的 Confluence 站点中。
831 0
Confluence 6 导入模板的步骤
第一步:检查你 Confluence 站点中安装的模板组件 查看当前已经导入到你 Confluence 站点中可用的模板组件: 以系统管理员或者 Confluence 管理员权限登录 Confluence。
1276 0
Confluence 6 导入模板的定义
模板是一个预先定义的页面,这个预先定义的页面可以在创建新页面的时候预先载入。模板能够给一个页面统一的样式或格式。 你可以在 Confluence 中创建你自己的模板,请查看页面 Create a Template 页面的相关内容。
970 0
推荐文章
更多