Properties

$relationWrite

$relationWrite : array

关联自动写入信息

Type

array

$parent

$parent : object

父关联模型对象

Type

object

$relation

$relation : array

模型关联数据

Type

array

$together

$together : array

关联写入定义信息

Type

array

Methods

setParent()

setParent(\think\Model  $model) : $this

设置父关联对象

Parameters

\think\Model $model

模型对象

Returns

$this —

getParent()

getParent() : \think\Model

获取父关联对象

Returns

\think\Model —

getRelation()

getRelation(string  $name = null) : mixed

获取当前模型的关联模型数据

Parameters

string $name

关联方法名

Returns

mixed —

setRelation()

setRelation(string  $name, mixed  $value, array  $data = []) : $this

设置关联数据对象值

Parameters

string $name

属性名

mixed $value

属性值

array $data

数据

Returns

$this —

bindAttr()

bindAttr(string  $relation, array  $attrs = []) : $this

绑定(一对一)关联属性到当前模型

Parameters

string $relation

关联名称

array $attrs

绑定属性

Throws

\think\Exception

Returns

$this —

together()

together(array|string  $relation) : $this

关联数据写入

Parameters

array|string $relation

关联

Returns

$this —

has()

has(string  $relation, mixed  $operator = '>=', int  $count = 1, string  $id = '*', string  $joinType = 'INNER') : \think\db\Query

根据关联条件查询当前模型

Parameters

string $relation

关联方法名

mixed $operator

比较操作符

int $count

个数

string $id

关联表的统计字段

string $joinType

JOIN类型

Returns

\think\db\Query —

hasWhere()

hasWhere(string  $relation, mixed  $where = [], mixed  $fields = '*') : \think\db\Query

根据关联条件查询当前模型

Parameters

string $relation

关联方法名

mixed $where

查询条件(数组或者闭包)

mixed $fields

字段

Returns

\think\db\Query —

relationQuery()

relationQuery(string|array  $relations, array  $withRelationAttr = []) : $this

查询当前模型的关联数据

Parameters

string|array $relations

关联名

array $withRelationAttr

关联获取器

Returns

$this —

eagerlyResultSet()

eagerlyResultSet(array  $resultSet, string  $relation, array  $withRelationAttr = [], bool  $join = false) : array

预载入关联查询 返回数据集

Parameters

array $resultSet

数据集

string $relation

关联名

array $withRelationAttr

关联获取器

bool $join

是否为JOIN方式

Returns

array —

eagerlyResult()

eagerlyResult(\think\Model  $result, string  $relation, array  $withRelationAttr = [], bool  $join = false) : \think\Model

预载入关联查询 返回模型对象

Parameters

\think\Model $result

数据对象

string $relation

关联名

array $withRelationAttr

关联获取器

bool $join

是否为JOIN方式

Returns

\think\Model —

relationCount()

relationCount(\think\Model  $result, array  $relations, string  $aggregate = 'sum', string  $field = '*') : void

关联统计

Parameters

\think\Model $result

数据对象

array $relations

关联名

string $aggregate

聚合查询方法

string $field

字段

hasOne()

hasOne(string  $model, string  $foreignKey = '', string  $localKey = '') : \think\model\relation\HasOne

HAS ONE 关联定义

Parameters

string $model

模型名

string $foreignKey

关联外键

string $localKey

当前主键

Returns

\think\model\relation\HasOne —

belongsTo()

belongsTo(string  $model, string  $foreignKey = '', string  $localKey = '') : \think\model\relation\BelongsTo

BELONGS TO 关联定义

Parameters

string $model

模型名

string $foreignKey

关联外键

string $localKey

关联主键

Returns

\think\model\relation\BelongsTo —

hasMany()

hasMany(string  $model, string  $foreignKey = '', string  $localKey = '') : \think\model\relation\HasMany

HAS MANY 关联定义

Parameters

string $model

模型名

string $foreignKey

关联外键

string $localKey

当前主键

Returns

\think\model\relation\HasMany —

hasManyThrough()

hasManyThrough(string  $model, string  $through, string  $foreignKey = '', string  $throughKey = '', string  $localKey = '') : \think\model\relation\HasManyThrough

HAS MANY 远程关联定义

Parameters

string $model

模型名

string $through

中间模型名

string $foreignKey

关联外键

string $throughKey

关联外键

string $localKey

当前主键

Returns

\think\model\relation\HasManyThrough —

belongsToMany()

belongsToMany(string  $model, string  $table = '', string  $foreignKey = '', string  $localKey = '') : \think\model\relation\BelongsToMany

BELONGS TO MANY 关联定义

Parameters

string $model

模型名

string $table

中间表名

string $foreignKey

关联外键

string $localKey

当前模型关联键

Returns

\think\model\relation\BelongsToMany —

morphOne()

morphOne(string  $model, string|array  $morph = null, string  $type = '') : \think\model\relation\MorphOne

MORPH One 关联定义

Parameters

string $model

模型名

string|array $morph

多态字段信息

string $type

多态类型

Returns

\think\model\relation\MorphOne —

morphMany()

morphMany(string  $model, string|array  $morph = null, string  $type = '') : \think\model\relation\MorphMany

MORPH MANY 关联定义

Parameters

string $model

模型名

string|array $morph

多态字段信息

string $type

多态类型

Returns

\think\model\relation\MorphMany —

morphTo()

morphTo(string|array  $morph = null, array  $alias = []) : \think\model\relation\MorphTo

MORPH TO 关联定义

Parameters

string|array $morph

多态字段信息

array $alias

多态别名定义

Returns

\think\model\relation\MorphTo —

parseModel()

parseModel(string  $model) : string

解析模型的完整命名空间

Parameters

string $model

模型名(或者完整类名)

Returns

string —

getForeignKey()

getForeignKey(string  $name) : string

获取模型的默认外键名

Parameters

string $name

模型名

Returns

string —

isRelationAttr()

isRelationAttr(string  $attr) : string|false

检查属性是否为关联属性 如果是则返回关联方法名

Parameters

string $attr

关联属性名

Returns

string|false —

getRelationData()

getRelationData(\think\model\Relation  $modelRelation) : mixed

智能获取关联模型数据

Parameters

\think\model\Relation $modelRelation

模型关联对象

Returns

mixed —

checkAutoRelationWrite()

checkAutoRelationWrite() : void

关联数据自动写入检查

autoRelationUpdate()

autoRelationUpdate() : void

自动关联数据更新(针对一对一关联)

autoRelationInsert()

autoRelationInsert() : void

自动关联数据写入(针对一对一关联)

autoRelationDelete()

autoRelationDelete() : void

自动关联数据删除(支持一对一及一对多关联)