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

2,810次阅读
没有评论

共计 1610 个字符,预计需要花费 5 分钟才能阅读完成。

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

下面这段放到你的config.xml的适当位置
[php]
<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]

然后新建模块
[php]

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

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

[php]
<?php

class Ynamespace_Ymodel_Model_Mysql4_Ymodel extends Mage_Core_Model_Mysql4_Abstract
{
public function _construct()
{
$this->_init(‘ymodel/mymodel’, ‘id’);
}
}

[/php]
因此,使用这种资源,您现在可以访问表并添加/修改。但是你不能显式创建一个此类的对象做到这一点。
[php]
$model=Mage::getModel("ymodel/mymodel")
->setName("Subesh")
->setLastname("Pokhrel")
->save();

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

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

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

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

[php]
<?php

class Ynamespace_Ymodel_Model_Mysql4_Mymodel_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract
{
public function _construct()
{
parent::_construct();
$this->_init(‘ymodel/mymodel’);
}
}
[/php]

查询这个表的所有行
[php]
$allCollection=Mage::getModel("ymodel/mymodel")->getCollection();

如果需要的话,你可以给上面的代码增加一些过滤条件,要拿到单独的行你可以对集合做循环

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

[/php]

正文完
 0
评论(没有评论)

空瓶子部落

文章搜索
推荐阅读
淬火到底淬什么,一张普通碳素结构钢调质图纸所引发的思考

淬火到底淬什么,一张普通碳素结构钢调质图纸所引发的思考

新入职的员工在制图,看到这张图纸,材料Q235A,技术要求,T235。就把我拉回到刚毕业的时候,起初也是出图,...
普通人自我跃迁和财富升级的关键技巧:OODA循环(万字完全指南)

普通人自我跃迁和财富升级的关键技巧:OODA循环(万字完全指南)

1997 年 3 月 20 日,一群人聚集在阿灵顿国家公墓的旧邮政教堂,参加美国空军退役上校约翰・理查德・博伊...
什么是鱼骨分析法?

什么是鱼骨分析法?

鱼骨分析法,‌也称为因果分析法,‌这种方法帮助我们从复杂的现象中找出引发问题的根本原因。‌鱼骨分析法的基本原理...
【基础知识】粗牙与细牙螺纹的应用场景及选用原则

【基础知识】粗牙与细牙螺纹的应用场景及选用原则

螺纹作为连接和紧固的重要元件,在机械设计和制造中扮演着至关重要的角色。其中,粗牙螺纹和细牙螺纹是两种常见的螺纹...
SPC统计过程控制

SPC统计过程控制

一. SPC概念 1.1 什么是SPC 统计过程控制即SPC(statistical process cont...
最新文章
Free TV:全球免费电视频道 M3U 播放列表,狂揽数万 Star

Free TV:全球免费电视频道 M3U 播放列表,狂揽数万 Star

https://github.com/Free-TV/IPTV 项目简介 Free TV 是一个精心维护的开源...
群晖 Let’s Encrypt 泛域名证书自动更新

群晖 Let’s Encrypt 泛域名证书自动更新

目前acme协议版本更新,开始支持泛域名(wildcard),也就是说,可以申请一个类似*.domain.co...
可以卸载TV Box 了,这款支持「绅士模式」的影视神器你值得拥有

可以卸载TV Box 了,这款支持「绅士模式」的影视神器你值得拥有

还在为找优秀片源难、广告多、平台会员太贵而烦恼?今天给大家挖到一款真正的影视宝藏工具——小猫影视! 作为开源免...
【收藏】一次性解决TV点播/直播自由

【收藏】一次性解决TV点播/直播自由

很多时候,资源就在面前,但是我们视而不见,因为长久的安逸,已经让人失去动手的兴趣。但是每次我需要挨个切换APP...
OpenWrt 存储空间扩容的两种方案

OpenWrt 存储空间扩容的两种方案

说明:当我们通过群晖 VMM 虚拟机安装 Open­Wrt 时,默认会分配一个 10GB 的存储空间,而实际情...
热门文章
提高过程能力指数(CP/CPK)的途径

提高过程能力指数(CP/CPK)的途径

编者按:过程能力指数(CP/CPK)想必各位质量人都耳熟能详、运用自如,质量工程师之家前期也共享过数篇关于过程...
SPC控制图的八种模式分析

SPC控制图的八种模式分析

SPC控制图有八种模式,即八种判断异常的检验准则,每一种检验准则代表一种异常现象,应用SPC控制图进行过程评估...
测量高手放大招:圆跳动测量技巧总结

测量高手放大招:圆跳动测量技巧总结

01. 前言 在五金机加工厂实际的测量工作中,经常碰到要求测量两个要素的圆跳动问题, 利用不同的测量辅件及夹具...
过程能力分析(CP&cpk)

过程能力分析(CP&cpk)

引入过程能力分析的目的? 在我们现有的管理过程中,我们经常会遇到有些具体指标总是不尽人意,存在许多需要改进的地...
新能源汽车 “两会”精神宣贯会

新能源汽车 “两会”精神宣贯会

此次和大家分享新能源汽车相关政策: [embeddoc url=”https://www.ctro...
最新评论
多乐士 多乐士 通过摸索发现ssh拉取会报错,直接网页访问下载会报404错误,不知道原因;但是可以通过群晖CM注册表访问下载,其方法如下: Container Manager-注册表-设置-新增-注册表名称随便写,注册表URL填你的加速地址,勾选信任的SSL自我签署证书,登录信息不填-应用-使用你的地址,这是注册表会显示了,在搜索栏中输入映像名称,搜索结果在每一页的最后一个,你需要划到最后一个进行下载,实测可正常下载安装。 以上供网友参考。
多乐士 多乐士 还有一个比较简单的方法,只是需要一些外部工具。 1、讲损毁硬盘取出,装入外部移动硬盘 2、打开Diskgenius,定位到硬盘 3、格式化系统分区 4、重新插入硬盘 5、存储池->修复存储池即可
多乐士 多乐士 写的不错的文章
辞了老衲 辞了老衲 这个确实有帮助。
渋驀 渋驀 当然任何时候都可以用curl命令和crontab来实现动态更新DDNS的ip地址: 1、安装crontab之后为root用户创建文件/var/spool/cron/root 2、创建并配置ddnsupdate.sh,放到/usr/bin/文件下,文件内容(以he.net为例): Autodetect my IPv4/IPv6 address: IPV4:curl -4 "http://dyn.example.com:password@dyn.dns.he.net/nic/update?hostname=dyn.example.com" IPV6:curl -6 "http://dyn.example.com:password@dyn.dns.he.net/nic/update?hostname=dyn.example.com" 3、添加执行权限chomod +x /usr/bin/ddnsupdate.sh 4、编辑root用户的crontab:*/10 * * * * /usr/binddnsupdate.sh,每10分钟执行一次。好了,可以享受你的DDNS了
21410 21410 请问下载链接在那里?
madkylin madkylin 不错,不错,谢谢分享了,好东西啊 :lol:
feilung feilung 求方法
zengsuyi zengsuyi 应该挺不错的
zise zise 看看是怎么操作的。。 :oops: