thinkphp6---一对一关联

2021/9/12 17:34:53

本文主要是介绍thinkphp6---一对一关联,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

使用Thinkphp6开发项目,一对一关联查询应该是使用比较多的了,下面做一个简单的记录:

首先是栏目表:admin_category

其次是文章表:article

首先是两个模型:

做关联查询的模块,可以是空模型:

查询文章,关联栏目:

关联查询:hasOne

hasOne('关联模型类名', '外键', '主键');

关联模型类名(必须):关联模型名

外键:默认的外键规则是当前模型名(不含命名空间,下同)+_id ,例如user_id

主键:当前模型主键,默认会自动获取也可以指定传入 

理解:在进行建表的时候,例如:
主表:article  字段:id  cate_id  title
附表:category 字段:cate_id  title
通过cate_id对表进行关联,在进行查询的时候,写法是这样的:
hasOne(category::class,cate_id(外键))
但是我们通常建表会这样建立:
主表:article 字段:id cid title
附表:category 字段:id title
这样建表,cid指向的就是附表的主键id,当前模型的主键就是cid。主键:是指一列或多列,其值能够唯一标识某一行。
hasOne(category::class,id,cid)

通过这样查询,我们获得的数组是一个二维数组,其中category中包括完整的数据结构,我们只需要某几个字段,可以设置闭包约束:

$users = User::with(['profile' => function($query) {
    $query->field('id,user_id,name,email');
}])->select();

附表关联主表做查询:例如:我想查询每一个栏目下都有哪些文章

使用:belongsTo进行关联查询

belongsTo('关联模型','外键', '关联主键');

关联模型(必须):关联模型类名
外键:当前模型外键,默认的外键名规则是关联模型名+_id
关联主键:关联模型主键,一般会自动获取也可以指定传入

示例:

具体查询方法:

到此一对多的基础用法就完了。



这篇关于thinkphp6---一对一关联的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程