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, bool  $auto = false) : mixed

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

Parameters

string $name

关联方法名

bool $auto

不存在是否自动获取

Returns

mixed —

setRelation()

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

设置关联数据对象值

Parameters

string $name

属性名

mixed $value

属性值

array $data

数据

Returns

$this —

relationQuery()

relationQuery(array  $relations, array  $withRelationAttr = []) : void

查询当前模型的关联数据

Parameters

array $relations

关联名

array $withRelationAttr

关联获取器

together()

together(array  $relation) : $this

关联数据写入

Parameters

array $relation

关联

Returns

$this —

has()

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

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

Parameters

string $relation

关联方法名

mixed $operator

比较操作符

int $count

个数

string $id

关联表的统计字段

string $joinType

JOIN类型

\think\db\BaseQuery $query

Query对象

Returns

\think\db\BaseQuery —

hasWhere()

hasWhere(string  $relation, mixed  $where = [], mixed  $fields = '*', string  $joinType = '', \think\db\BaseQuery  $query = null) : \think\db\BaseQuery

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

Parameters

string $relation

关联方法名

mixed $where

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

mixed $fields

字段

string $joinType

JOIN类型

\think\db\BaseQuery $query

Query对象

Returns

\think\db\BaseQuery —

eagerly()

eagerly(\think\db\BaseQuery  $query, string  $relation, mixed  $field, string  $joinType = '', \Closure  $closure = null, bool  $first = false) : bool

预载入关联查询 JOIN方式

Parameters

\think\db\BaseQuery $query

Query对象

string $relation

关联方法名

mixed $field

字段

string $joinType

JOIN类型

\Closure $closure

闭包

bool $first

Returns

bool —

eagerlyResultSet()

eagerlyResultSet(array  $resultSet, array  $relations, array  $withRelationAttr = [], bool  $join = false, mixed  $cache = false) : void

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

Parameters

array $resultSet

数据集

array $relations
array $withRelationAttr

关联获取器

bool $join

是否为JOIN方式

mixed $cache

关联缓存

eagerlyResult()

eagerlyResult(\think\Model  $result, array  $relations, array  $withRelationAttr = [], bool  $join = false, mixed  $cache = false) : void

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

Parameters

\think\Model $result

数据对象

array $relations

关联

array $withRelationAttr

关联获取器

bool $join

是否为JOIN方式

mixed $cache

关联缓存

bindAttr()

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

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

Parameters

string $relation

关联名称

array $attrs

绑定属性

Throws

\think\db\exception\DbException

Returns

$this —

relationCount()

relationCount(\think\db\BaseQuery  $query, array  $relations, string  $aggregate = 'sum', string  $field = '*', bool  $useSubQuery = true) : void

关联统计

Parameters

\think\db\BaseQuery $query

查询对象

array $relations

关联名

string $aggregate

聚合查询方法

string $field

字段

bool $useSubQuery

子查询

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 = '', string  $throughPk = '') : \think\model\relation\HasManyThrough

HAS MANY 远程关联定义

Parameters

string $model

模型名

string $through

中间模型名

string $foreignKey

关联外键

string $throughKey

关联外键

string $localKey

当前主键

string $throughPk

中间表主键

Returns

\think\model\relation\HasManyThrough —

hasOneThrough()

hasOneThrough(string  $model, string  $through, string  $foreignKey = '', string  $throughKey = '', string  $localKey = '', string  $throughPk = '') : \think\model\relation\HasOneThrough

HAS ONE 远程关联定义

Parameters

string $model

模型名

string $through

中间模型名

string $foreignKey

关联外键

string $throughKey

关联外键

string $localKey

当前主键

string $throughPk

中间表主键

Returns

\think\model\relation\HasOneThrough —

belongsToMany()

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

BELONGS TO MANY 关联定义

Parameters

string $model

模型名

string $middle

中间表/模型名

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 —

morphToMany()

morphToMany(string  $model, string  $middle, string|array  $morph = null, string  $localKey = null) : \think\model\relation\MorphToMany

MORPH TO MANY关联定义

Parameters

string $model

模型名

string $middle

中间表名/模型名

string|array $morph

多态字段信息

string $localKey

当前模型关联键

Returns

\think\model\relation\MorphToMany —

morphByMany()

morphByMany(string  $model, string  $middle, string|array  $morph = null, string  $foreignKey = null) : \think\model\relation\MorphToMany

MORPH BY MANY关联定义

Parameters

string $model

模型名

string $middle

中间表名/模型名

string|array $morph

多态字段信息

string $foreignKey

关联外键

Returns

\think\model\relation\MorphToMany —

removeRelation()

removeRelation() : $this

移除当前模型的关联属性

Returns

$this —

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

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