think php 关联模型,ThinkPHP 关联模型使用图解
通常我们所说的关联关系包括下面三种:
☆ 一对一关联:ONE_TO_ONE,包括HAS_ONE和BELONGS_TO
☆ 一对多关联:ONE_TO_MANY,包括HAS_MANY和BELONGS_TO
☆ 多对多关联:MANY_TO_MANY
关联关系必然有一个参照表,例如:
有一个用户注册表xp_user和一个用户信息表xp_info
xp_user有用户的账号、密码
xp_info记录用户的基本信息 有标题、信息
一、我们首先来说说HAS_ONE关联
首先要建立一个UserModel模型
UserModel模型:
<?phpclassUserModelextendsRelationModel {//这地方要继承RelationModelprotected$_link=array(//所有的关联定义都统一记录在模型类的$_link里面'Info'=>array(//关联的表名'mapping_type'=>HAS_ONE,//关联类型'class_mame'=>'Info',//需要关联的模型类名'mapping_name'=>'Info',//关联的映射名称,用于获取数据用'foreign_key'=>'uid',//关联的外键名称//'mapping_fields'=>'uid,title,info', //关联要查询的字段'as_fields'=>'uid,title,info:message',//直接把关联的字段值映射成数据对象中的某个字段),);}?>
UserAction控制器:
<?phpclassUserActionextendsAction {publicfunctionindex(){$user=D('User');$list=$user->relation(true)->find();//由于性能问题,新版本取消了自动关联查询机制,而统一使用relation方法进行关联操作dump($list);}}?>
输入结果如下:
二、一对多关联HAS_MANY
user表仍是一条数据
info表增加一条数据
UserModel模型:
<?phpclassUserModelextendsRelationModel {//这地方要继承RelationModelprotected$_link=array(//所有的关联定义都统一记录在模型类的$_link里面'Info'=>array(//关联的表名'mapping_type'=>HAS_MANY,//关联类型 一对多关联'class_mame'=>'Info',//需要关联的模型类名'mapping_name'=>'Info',//关联的映射名称,用于获取数据用'foreign_key'=>'uid',//关联的外键名称//'mapping_fields'=>'uid,title,info', //关联要查询的字段'as_fields'=>'uid,title,info:message',//直接把关联的字段值映射成数据对象中的某个字段//一对多关联这地方增加了几个参数//mapping_limit 关联要返回的记录条数//mapping_order 关联查询的顺序),);}?>
UserAction控制器:
<?phpclassUserActionextendsAction {publicfunctionindex(){$user=D('User');$list=$user->relation(true)->select();dump($list);}}?>
输出结果:
一对一和一对多 基本一样、只要会一对一 一对多很容易
三、关联操作 CURD
1.以一对多模型为例,向数据库插入数据
UserAction.class.php
'title111111','info'=>'info11111111'),//这里的info是字段array('title'=>'title222222222','info'=>'info222222222'),
);$user->relation(true)->add($data);
}
}?>
运行结果:
2.修改这条数据
UserAction.class.php
<?phpclassUserActionextendsAction {publicfunctionindex(){$user=D('User');$data['username']='demo';$data['userpwd']='mima';$data['Info']=array(array('id'=>'5','title'=>'demo111111','info'=>'demo111111'),//这地方跟add不同 需要加修改的IDarray('id'=>'6','title'=>'demo2222222','info'=>'demo2222222'),);$user->relation(true)->where('id=16')->save($data);}}?>
运行结果:
3.删除这条数据
<?phpclassUserActionextendsAction {publicfunctionindex(){$user=D('User');$user->relation(true)->delete(16);}}?>
运行结果:
好了,关联操作到此结束
think php 关联模型,ThinkPHP 关联模型使用图解相关推荐
- ThinkPHP关联模型详解
在ThinkPHP中,关联模型更类似一种mysql中的外键约束,但是外键约束更加安全,缺点却是在写sql语句的时候不方便,ThinkPHP很好得解决了这个问题.但是很多人不动关联模型的意思.现在就写个 ...
- thinkphp通过模型查询mysql_thinkPHP视图模型详解,把mysql表关联简单化!
学过sql的人都知道有表左关联,右关联,但是sql语句要写很多,非常容易出错,而ThinkPHP的视图模型则简单化很多了.还发现个问题,貌似ThinkPHP手册写的很多东西都不是很完善,很多人看了都不 ...
- thinkphp 关联模型配置代码
原文:thinkphp 关联模型配置代码 <?php /*** 公司与部门关联模型*/ class CompanyRelationModel extends RelationModel{//主表 ...
- Django框架(14.Django中模型类的关系,以及模型类关联查询)
Django中模型类的关系,以及模型类关联查询 1.模型类关系 1.1 一对多关系 1.2多对多关系 1.3 一对一关系 1.4 一对多举例: 1.5 多对多举例: 1.6 一对一举例: 2.关联查询 ...
- 二十八、PHP框架Laravel学习笔记——模型的关联查询
二.关联查询 前几篇博文,了解了三种基础的关联模型,并简单的进行查询: 本节课,我们详细的了解更多的查询方案: //下面两种查询是一样的: $books = User::find(19)->bo ...
- matlab小船渡河物理模型,【物理】小船渡河模型及关联速度问题
原标题:[物理]小船渡河模型及关联速度问题 在运动的合成与分解中,如何判断物体的合运动和分运动是首要问题,判断合运动的有效方法是看见的实际运动就是合运动.合运动的分解从理论上说可以是任意的,但一般按运 ...
- sequelize模型关联_Node.js Sequelize 模型(表)之间的关联及关系模型的操作
Sequelize模型之间存在关联关系,这些关系代表了数据库中对应表之间的主/外键关系.基于模型关系可以实现关联表之间的连接查询.更新.删除等操作.本文将通过一个示例,介绍模型的定义,创建模型关联关系 ...
- 【Laravel笔记】10. 模型的关联查询
关于 拾年之璐 微信公众号:知行校园汇,点击查看,欢迎关注 其他平台(点击蓝字可访问): GitHub | Gitee | 哔哩哔哩 | 语雀 | 简书 | 微信小程序 | 知行达摩院 本文专栏:La ...
- matlab小船渡河物理模型,高中物理 | 小船渡河模型及关联速度问题
原标题:高中物理 | 小船渡河模型及关联速度问题 在运动的合成与分解中,如何判断物体的合运动和分运动是首要问题,判断合运动的有效方法是看见的实际运动就是合运动.合运动的分解从理论上说可以是任意的,但一 ...
最新文章
- 分布式事务原理及实战seata(转自微信公众号 终码一生 )
- 【转】oracle having -OCP-047-53
- linux malloc free 内存碎片_内存申请malloc/new与内存释放free/delete的区别
- 108扫货节完美收官 在线交易额破千万
- 解析搜索引擎的Robots协议
- ArcGIS 10.X功能增减(转)
- 51nod 平均数(二分+树状数组)
- visa虚拟卡生成器_你们要的电子虚拟信用卡,它来了,准备好盘了吗?
- linux开机出现repaire filesystem
- 【深度完美精简版 5.10】 Deepin-LiteXP-5.10
- 《操作系统》考前秘籍
- android调试遇到ADB server didn't ACK以及蛋疼的sjk_daemon进程
- 清理win10不常用服务
- cocos creator休闲游戏甜品幻想H5+安卓+IOS三端源码开发脚本为javaScript
- css 对checkbox样式进行修改
- photoshp案例技巧-彭亮-专题视频课程
- matlab 格兰杰,matlab非参数的格兰杰因果分析
- 对Restful的理解
- core文件处理和进程查询
- 蓝桥杯 — 星系炸弹( 在X星系的广袤空间中漂浮着许多X星人造“炸弹”)
热门文章
- 南通市交巡警支队同城异地容灾备份系统项目中标结果公告
- matlab中怎么求矩阵的特征值和特征向量
- Matlab下 IIR 滤波器实现(Simulink仿真和C语言实现)
- rtmp推流时间戳兼容问题
- PCL中PFH、FPFH理论
- 数字图像处理实验(6):PROJECT 04-02,Fourier Spectrum and Average Value
- 树莓派一键备份脚本 备份为img镜像 可用于量产 可选备份位置 适配Debian/Ubuntu
- python的数值可以转换为字符串_python 数值转换为字符串Python对HTML转义字符进行反转义...
- pythonista3使用说明_pythonista3都能做什么
- simple k means