ThinkPHP框架--关联查询--HAS_MANY--小demo
来源:互联网 发布:linux中的grep命令 编辑:程序博客网 时间:2024/06/05 05:44
测试用的ThinkPHP版本是3.1.3,PHP版本是5.3.3
一、HAS_MANY 关联表示当前模型拥有多个子对象,例如每个用户有多篇文章,我们可以这样来定义:
‘Article’=> HAS_MANY
完整定义方式为:
‘Article’=> array(
‘mapping_type’=>HAS_MANY,
‘class_name’=>’Article’,
‘foreign_key’=>’userId’,
‘mapping_name’=>’articles’,
‘mapping_order’=>’create_time desc’,
// 定义更多的关联属性
……
),
其他内容,可以查看手册…,现在有两个数据表,如下所示。
数据表一:【文章表】
CREATE TABLE `sh_article` ( `article_id` int(10) unsigned NOT NULL auto_increment COMMENT '文章表主键ID', `special_id` int(11) default NULL COMMENT '所属专题ID', `article_title` varchar(50) NOT NULL COMMENT '文章标题', `article_author` varchar(20) NOT NULL COMMENT '文章作者', `aiticle_copyFrom` varchar(50) default NULL COMMENT '转载自', `aiticle_editor` varchar(20) NOT NULL default '上海市农业科学院成果转化平台' COMMENT '文章录入员', `aiticle_key` varchar(50) default NULL COMMENT '关键字', `aiticle_hits` int(11) NOT NULL default '0' COMMENT '点击次数', `aiticle_updateTime` int(10) NOT NULL default '0' COMMENT '更新时间', `aiticle_Hot` tinyint(1) default '0' COMMENT '是否是热点文章', `aiticle_onTop` tinyint(1) default '0' COMMENT '是否置顶', `aiticle_content` text NOT NULL COMMENT '文章内容', `aiticle_defPic` varchar(50) NOT NULL COMMENT '首页默认图片', `aiticle_uploadUrl` varchar(50) NOT NULL COMMENT '上传地址', PRIMARY KEY (`article_id`)) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
插入数据
insert into `sh_article`(`article_id`,`special_id`,`article_title`,`article_author`,`aiticle_copyFrom`,`aiticle_editor`,`aiticle_key`,`aiticle_hits`,`aiticle_updateTime`,`aiticle_Hot`,`aiticle_onTop`,`aiticle_content`,`aiticle_defPic`,`aiticle_uploadUrl`) values (1,NULL,'文章标题1','文章作者1',NULL,'上海市农业科学院成果转化平台',NULL,0,0,0,0,'文章内容1','图片1','1');
数据表二:【文章表】内含的【图片表】
CREATE TABLE `sh_article_pic` ( `article_pic_id` int(10) unsigned NOT NULL auto_increment COMMENT '文章图片表主键ID', `article_id` int(11) NOT NULL COMMENT '文章表主键ID', `aiticle_pic` varchar(50) NOT NULL COMMENT '图片', PRIMARY KEY (`article_pic_id`)) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
插入数据
insert into `sh_article_pic`(`article_pic_id`,`article_id`,`aiticle_pic`) values (1,1,'图片1'),(2,1,'图片2'),(3,1,'图片3'),(4,2,'图片1');
先看流程图:
第一步的代码:
<?php class KnowledgeAction extends Action { public function index(){ $User = D("Article"); $user = $User->relation(true)->select(); //dump($user); echo "<pre>"; print_r($user); }}
第二步的代码:
<?php class ArticleModel extends RelationModel{//继承ReletionModel类 protected $_link = array( 'Article'=>array( 'mapping_type'=>HAS_MANY, //关联类型,一对多 'mapping_name'=>'node', //关联的映射名称,就是关联出来的数组的键值,见说明1. 'class_name'=>'Article_pic', //关联数据库,即图片库 //'mapping_order'=>'sort', //'parent_key'=>'article_id',//自引用关联的关联字段 //'foreign_key'=>'article_id', ), );}
说明1:
模板部分:
<volist name="alist" id="vo"> //第一层数据 <if condition="$vo.level eq '1'"> <option value="{$vo.id}">{$vo.title}</option> //第二层数据 <elseif condition="$vo.level eq '2'" /> <option value="{$vo.id}">{$vo.title}</option> //第三层数据 <volist name="vo.node" id="svo"> <option value="{$svo.id}"> {$svo.title}</option> </if></volist>
0 0
- ThinkPHP框架--关联查询--HAS_MANY--小demo
- thinkphp关联查询
- thinkphp关联查询
- ThinkPHP关联查询
- thinkphp关联查询(多表查询)
- thinkphp关联查询(多表查询)
- thinkphp关联查询(多表查询)
- thinkphp 定义视图模型调用关联查询
- thinkphp 关联查询 数据比对 exp
- thinkphp关联模版一对多查询失效
- thinkphp中的多表关联查询
- Thinkphp框架使用小技巧
- ThinkPHP框架整合极光推送DEMO
- ThinkPHP框架整合友盟推送DEMO
- ThinkPHP框架整合环信即时通讯DEMO
- ThinkPHP框架整合phpqrcode生成二维码DEMO
- ThinkPHP框架整合phpqrcode生成二维码DEMO
- mybatis框架实现关联查询
- java字符串切割
- MFC 学习之 鼠标移动到Toolbar按钮上显示提示信息(tooltip),状态栏也随之改变
- CSS设置字体
- UI第十七天:图⽚异步下载、KVO
- Eclipse常用的高效插件
- ThinkPHP框架--关联查询--HAS_MANY--小demo
- SharePoint Server 2016 update
- Vi编辑器基础使用
- Ubuntu ☞ 安装配置PPTP VPN服务
- 同一进程中线程共享和独占的资源
- 黑马程序员——OC学习——@class的使用
- 当Navicat for Mysql出现 1045 -Access denied for user'root'@'ipAddress'(using password :yes)
- Wamserver 添加虚拟主机的方式
- Linux基础命令