Skip to content

一对多关联

模型关联用于定义不同模型之间的关系,简化多表查询操作。

一对多关联语法说明

一对多关联的基本语法格式如下:

php
/**
 * 关联描述
 * @return \think\model\relation\[关联类型]
 */
public function [关联名称]()
{
    return $this->[关联方法]('目标模型类名', '外键', '主键');
}

例如:一对多关联

php
/**
 * 关联商品规格列表
 * @return \think\model\relation\HasMany
 */
public function skuList()
{
	return $this->hasMany(GoodsSku::class, 'goods_id', 'goods_id');
}

语法要点:

  1. 方法名即为关联名称,使用驼峰命名法

  2. 返回类型通常为 \think\model\relation\* 系列类

  3. 关联方法: hasMany: 一对多关联(当前模型有多个关联模型)

  4. 关联参数:

    • 第一个参数(必须):关联的模型类名(完整命名空间)

    • 第二个参数(可选):关联模型的外键。默认的外键规则是当前模型名(不含命名空间,下同)+_id

    • 第三个参数(可选):当前模型的主键,默认会自动获取也可以指定传入

使用方式:

php
$info = $goods_sku_model->field($field)
->with([ 'skuList' => function ($query) {
            $query->field('sku_id,sku_name, sku_image');
        }
 ])

如图:

基于 MIT 协议发布