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

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

如果你想在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/

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
8月前
|
关系型数据库 MySQL 数据库
第十四章 演示MYSQL自定义values.yaml绑定PV和PVC和数据库用户密码
第十四章 演示MYSQL自定义values.yaml绑定PV和PVC和数据库用户密码
98 0
|
XML 开发框架 前端开发
J2EE之自定义框架知识(下篇 综合运用增删改查)
J2EE之自定义框架知识(下篇 综合运用增删改查)
73 0
|
2天前
|
存储 安全 API
陪玩平台中支付与结算模块的代码,陪玩系统数据库设计与代码实现
第三方支付平台对接涉及与微信支付、支付宝等API接口的调用,确保用户支付流程顺畅。结算模块根据业务规则计算陪玩师收益,强调安全性、异常处理、可扩展性和日志记录。数据库设计涵盖用户、陪玩者、订单等信息的存储管理,确保系统稳定运行。
|
6月前
|
SQL 数据库 微服务
微服务03,最简单的Demo,我们每个服务不能重复开发相同业务,微服务数据独立,不要访问其他微服务的数据库,微服务的特点之一是提供不能功能的数据库互相分割,微服务需要根据业务模块拆分,做到单一职责,
微服务03,最简单的Demo,我们每个服务不能重复开发相同业务,微服务数据独立,不要访问其他微服务的数据库,微服务的特点之一是提供不能功能的数据库互相分割,微服务需要根据业务模块拆分,做到单一职责,
|
4月前
|
SQL 关系型数据库 MySQL
学成在线笔记+踩坑(3)——【内容模块】课程分类查询、课程增改删、课程计划增删改查,统一异常处理+JSR303校验
课程分类查询、课程新增、统一异常处理、统一封装结果类、JSR303校验、修改课程、查询课程计划、新增/修改课程计划
学成在线笔记+踩坑(3)——【内容模块】课程分类查询、课程增改删、课程计划增删改查,统一异常处理+JSR303校验
|
4月前
|
前端开发 应用服务中间件 API
|
4月前
|
数据库 Python
django中数据库外键可以自定义名称吗
django中数据库外键可以自定义名称吗
|
5月前
|
SQL Shell API
python Django教程 之 模型(数据库)、自定义Field、数据表更改、QuerySet API
python Django教程 之 模型(数据库)、自定义Field、数据表更改、QuerySet API
|
6月前
|
SQL DataWorks 关系型数据库
DataWorks产品使用合集之数据集成时源头提供数据库自定义函数调用返回数据,数据源端是否可以写自定义SQL实现
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
5月前
|
存储 运维 Java
SpringBoot使用log4j2将日志记录到文件及自定义数据库
通过上述步骤,你可以在Spring Boot应用中利用Log4j2将日志输出到文件和数据库中。这不仅促进了良好的日志管理实践,也为应用的监控和故障排查提供了强大的工具。强调一点,配置文件和代码的具体实现可能需要根据应用的实际需求和运行环境进行调优和修改,始终记住测试配置以确保一切运行正常。
812 0