资讯专栏INFORMATION COLUMN

Magento中如何在模块中使用多张数据表并配置多个model?

leiyi / 1443人阅读

功能介绍:

引用magento开发人员的一句话:

Magento has basic one resource to one table resource。

也即是一个资源对应一张数据表。
当有时候,需要在一个模块中使用多张数据表,配置多个model,那么又该如何配置model呢?

1.创建数据表:
//创建第一张表
CREATE TABLE `custom` (
`custom_id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR( 25 ) NOT NULL
PRIMARY KEY (`custom_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;


//创建第二张表
CREATE TABLE `customdata` (
`customdata_id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR( 25 ) NOT NULL
PRIMARY KEY (`customdata_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
2.编写配置文件


    
        
            true
            local
        
    
3.配置模块中配置文件etc/config.xml
//找到如下代码
......

    
        
            Test_Custom_Model
            custom_mysql4
        
    
        
            Test_Custom_Model_Mysql4
            
                //第一张表
                
                    custom
//第二张表 customdata
Silk_Custom core_setup core_write core_read
......
4.创建模型Custom.php和Customdata.php

//app/code/local/Mypackage/Mymodule/Model/Custom.php
_init("mymodule/Custom");
    }
}
?>

//app/code/local/Mypackage/Mymodule/Model/Customdata.php
class Mypackage_Mymodule_Model_Test extends Mage_Core_Model_Abstract
{   
    public function _construct()
    {
        parent::_construct();
        $this->_init("mymodule/Customdata");
    }
}
?>
5.创建资源模型
//app/code/local/Mypackage/Mmodule/Model/Mysql4/Custom.php
_init("mymodule/custom", "custom_id");//custom_id为表custom的主键
    }
}
?>
 

//app/code/local/Mypackage/Mmodule/Model/Mysql4/Customdata.php
_init("mymodule/customdata", "customdata_id");//customdata_id为表customdata的主键
    }
}
?>
6.创建一个集合类
//local/Mypackage/Mymodule/Model/Mysql4/Custom/Collection.php
_init("mymodule/custom");
    }
}
?>
 
//local/Mypackage/Mymodule/Model/Mysql4/Customdata/Collection.php
_init("mymodule/customdata");
    }
}
?>

7.现在model就配置好了

model配置好后,来做下测试,我们在block中取得数据,然后从模板文件中调取,

getCollection()->addfieldtofilter("field",$field);//addfieldtofilter()为过滤条件
        $res=$customdata->getData();
        //print_r($customdata->getSelectSql(true));//打印出sql语句
        foreach ($res as $v)
        {
            $val=$v["val"];
            //echo $val;
            echo "";
        }
    }
}

在模板文件中输出:



数据库内容所示:

输出如图所示:

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/21409.html

相关文章

  • Magento2.x 如何创建一个Module?

    摘要:今天记录下如何创建一个,直接进入正题。创建好我们的和之后,接下来就需要创建一系列的文件,我们依次来说每个文件如何创建。 Magento2.x版本已经发布一段时间了,到现在为止已经到2.2了,最新版本可以关注Magento在github上的更新。今天记录下Magento2.1如何创建一个module,直接进入正题。 安装Magento2后,进入项目的根目录后,进入/app目录,只有app...

    bbbbbb 评论0 收藏0
  • 一个简单的Magento1.9模块示例

    摘要:本次要做的就是,撰写一个模块,让该模块跑完整个的流程。创建模型,需要启用模型,启用资源模型,在资源模型中添加实体,再为资源模型设置读写适配器。 很多时候,不知道Magento模块到底该怎么写,比如ThinkPHP,YII框架,它是直接将控制器Controller中的所取得相关数据直接传递到视图层View,而Magento虽然也是MVC三层,但是在中间多了布局对象Layout与区块Blo...

    Pikachu 评论0 收藏0
  • 基于模块的自定义商品开发研究

    摘要:目标自定义字段。能够对接自定义商品后续处理过程。参考模块博文状态持续编辑中简单教程通过模块开发自定义商品类型忽略部分,如何创建一个模块,并启用这个部分可以看我的其它博文。基本内容可以看到我整篇代码复制模块下面的,只自定义了一下这样就可以了。 目标: 1. 自定义字段。 2. 启用新商品类型简化商品属性。 3. 能够对接自定义商品后续处理过程。 参考:Magento_Downloa...

    CKJOKER 评论0 收藏0
  • [译]Magento2 高级路由

    摘要:以上是的的目录路由器配置。考虑重写模块以上文件文件使用的操作字符串。例如,如果你想回到第一个模块在这个系列和添加前端端点,所有你需要做的就是添加以下配置和以下控制器文件。默认操作字符串段我们从先进的路由移动之前,有一些最后要提。 今天,我们要介绍的几个Magento的路由系统的高级功能,并讨论一些看似急性锐边的历史。虽然所有在这篇文章中提供的技术可能不是最好的方式来实现自己的目标,作为...

    PumpkinDylan 评论0 收藏0
  • Magento复写插件AW_Blog练习

    摘要:到此就完成了。 功能介绍:安装好Magento插件后,需要把AW_Blog的前端显示方式要改变,变成类似选项卡的展示效果,先看下设计大体效果如下图:showImg(https://segmentfault.com/img/bVtIVr);那么,改如何修改插件呢?还是和往常一样,新建一个模块,包含Block、controllers、etc、sql、Model文件夹showImg(http...

    ad6623 评论0 收藏0

发表评论

0条评论

leiyi

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<