Skip to content

一对一关联

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

一对一关联语法说明

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

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

例如:一对一关联

php
/**
 * 关联默认商品规格
 * @return \think\model\relation\HasOne
 */
public function goodsSku()
{
	return $this->hasOne(GoodsSku::class, 'goods_id', 'goods_id');
}

语法要点:

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

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

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

  4. 关联参数:

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

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

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

使用方式:

php
$search_model = $this->model->field($field)->withJoin([ 'goodsSku' => [ 'sku_id', 'sku_name', 'sku_image', 'sku_no' ] ])

如图:

基于 MIT 协议发布