THINKPHP5第六章(模型中的关联 一对一)

首先是一对一关联,假设我们有用户表,每个用户都有一个个人资料字段。那么对应的就有了1对1的关联,一个用户,对应关联一个资料字段。定义如下图所示

THINKPHP5第六章(模型中的关联 一对一)_第1张图片

默认的关联方式是inner Jion ,在5.0.3版本之后支持了,关联模型定义查询的字段feild()。5.0.5版本后放弃了别名的使用。

THINKPHP5第六章(模型中的关联 一对一)_第2张图片

当模型中定义好关联之后就可以开始使用了,如下图所示

THINKPHP5第六章(模型中的关联 一对一)_第3张图片

看见图中我标记出来的地方了吗,前面hasone里面的profile 和feild里面定义的查询字段email,就可以这样使用了。看着好像有些别扭。但其实蛮好用,不必使用语句写太多的代码了明白了嘛。如果需要加入查询条件,意思就像是你的SQL语句中有where什么什么的地方这种,还可以使用hasWhere()方法。

THINKPHP5第六章(模型中的关联 一对一)_第4张图片

查询定义中的email,就会在查询的时候指定一个值,有人就会问,那么让模型关联查询的时候变成活的啦。上图中email后跟了一个值,假设你把这个值给一个变量来传递可以嘛。答案是肯定的。幻想这样一个场景,页面中存在一个搜索框,输入值点击搜素,这时候,只需要在后台接收到这个值,传入关联查询即可。然后再把查出来的东西让控制层传递到页面中,遍历循环出来。我说的没错吧。

定义相对关联如下图所示

THINKPHP5第六章(模型中的关联 一对一)_第5张图片

belongs方法

THINKPHP5第六章(模型中的关联 一对一)_第6张图片

绑定属性到父级模型,刚才Profile模型关联了User模型,那么User模型的父级模型就是Profile模型

THINKPHP5第六章(模型中的关联 一对一)_第7张图片

THINKPHP5第六章(模型中的关联 一对一)_第8张图片

剩下一个是together方法就不再概述了。你们参考下手册就能看懂了。

你可能感兴趣的:(THINKPHP5)