zoukankan      html  css  js  c++  java
  • 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
    关联主键:关联模型主键,一般会自动获取也可以指定传入

    示例:

    具体查询方法:

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

  • 相关阅读:
    hive on hbase
    django多表操作
    django单表操作
    django模板
    django路由初识
    python 相关模块安装 国内镜像地址
    django初识
    Python中属性和描述符的简单使用
    pip安装包(python安装gevent(win))
    jQuery 事件方法
  • 原文地址:https://www.cnblogs.com/e0yu/p/15259251.html
Copyright © 2011-2022 走看看