Properties

$eagerlyType

$eagerlyType : 

Type

$joinType

$joinType : 

Type

$bindAttr

$bindAttr : 

Type

$relation

$relation : 

Type

$parent

$parent : 

Type

$model

$model : \think\Model

Type

\think\Model — 当前关联的模型类

$query

$query : \think\db\Query

Type

\think\db\Query — 关联模型查询对象

$foreignKey

$foreignKey : 

Type

$localKey

$localKey : 

Type

$baseQuery

$baseQuery : 

Type

$selfRelation

$selfRelation : 

Type

Methods

joinType()

joinType(string  $type) : $this

设置join类型

Parameters

string $type

JOIN类型

Returns

$this

eagerly()

eagerly(\think\db\Query  $query, string  $relation, string  $subRelation, \Closure  $closure, boolean  $first) : void

预载入关联查询(JOIN方式)

Parameters

\think\db\Query $query

查询对象

string $relation

关联名

string $subRelation

子关联

\Closure $closure

闭包条件

boolean $first

eagerlyResultSet()

eagerlyResultSet(array  $resultSet, string  $relation, string  $subRelation, \Closure  $closure) : void

预载入关联查询(数据集)

Parameters

array $resultSet

数据集

string $relation

当前关联名

string $subRelation

子关联名

\Closure $closure

闭包

eagerlyResult()

eagerlyResult(\think\Model  $result, string  $relation, string  $subRelation, \Closure  $closure) : void

预载入关联查询(数据)

Parameters

\think\Model $result

数据对象

string $relation

当前关联名

string $subRelation

子关联名

\Closure $closure

闭包

save()

save(mixed  $data) : \think\Model|false

保存(新增)当前关联数据对象

Parameters

mixed $data

数据 可以使用数组 关联模型对象 和 关联对象的主键

Returns

\think\Model|false

setEagerlyType()

setEagerlyType(integer  $type) : $this

设置预载入方式

Parameters

integer $type

预载入方式 0 JOIN查询 1 IN查询

Returns

$this

getEagerlyType()

getEagerlyType() : integer

获取预载入方式

Returns

integer

bind()

bind(mixed  $attr) : $this

绑定关联表的属性到父模型属性

Parameters

mixed $attr

要绑定的属性列表

Returns

$this

getBindAttr()

getBindAttr() : array

获取绑定属性

Returns

array

relationCount()

relationCount(\think\Model  $result, \Closure  $closure) : integer

关联统计

Parameters

\think\Model $result

数据对象

\Closure $closure

闭包

Returns

integer

getParent()

getParent() : \think\Model

获取关联的所属模型

Returns

\think\Model

getModel()

getModel() : \think\Model

获取当前的关联模型对象实例

Returns

\think\Model

getQuery()

getQuery() : \think\db\Query

获取关联的查询对象

Returns

\think\db\Query

selfRelation()

selfRelation(boolean  $self = true) : $this

设置当前关联为自关联

Parameters

boolean $self

是否自关联

Returns

$this

isSelfRelation()

isSelfRelation() : boolean

当前关联是否为自关联

Returns

boolean

__call()

__call(  $method,   $args) 

Parameters

$method
$args

__construct()

__construct(\think\Model  $parent, string  $model, string  $foreignKey, string  $localKey, string  $joinType = 'INNER', string  $relation = null) 

构造函数

Parameters

\think\Model $parent

上级模型对象

string $model

模型名

string $foreignKey

关联外键

string $localKey

关联主键

string $joinType

JOIN类型

string $relation

关联名

getRelation()

getRelation(string  $subRelation = '', \Closure  $closure = null) : array|false|\PDOStatement|string|\think\Model

延迟获取关联数据

Parameters

string $subRelation

子关联名

\Closure $closure

闭包查询条件

Returns

array|false|\PDOStatement|string|\think\Model

has()

has(string  $operator = '>=', integer  $count = 1, string  $id = '*') : \think\db\Query

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

Parameters

string $operator

比较操作符

integer $count

个数

string $id

关联表的统计字段

Returns

\think\db\Query

hasWhere()

hasWhere(mixed  $where = array(), mixed  $fields = null) : \think\db\Query

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

Parameters

mixed $where

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

mixed $fields

字段

Returns

\think\db\Query

associate()

associate(\think\Model  $model) : \think\Model

添加关联数据

Parameters

\think\Model $model

关联模型对象

Returns

\think\Model

dissociate()

dissociate() : \think\Model

注销关联数据

Returns

\think\Model

eagerlySet()

eagerlySet(array  $resultSet, string  $relation, string  $subRelation, \Closure  $closure) : void

预载入关联查询(数据集)

Parameters

array $resultSet

数据集

string $relation

当前关联名

string $subRelation

子关联名

\Closure $closure

闭包

eagerlyOne()

eagerlyOne(\think\Model  $result, string  $relation, string  $subRelation, \Closure  $closure) : void

预载入关联查询(数据)

Parameters

\think\Model $result

数据对象

string $relation

当前关联名

string $subRelation

子关联名

\Closure $closure

闭包

match()

match(string  $model, string  $relation, \think\Model  $result) : void

一对一 关联模型预查询拼装

Parameters

string $model

模型名称

string $relation

关联名

\think\Model $result

模型对象实例

bindAttr()

bindAttr(\think\Model  $model, \think\Model  $result, array  $bindAttr) : void

绑定关联属性到父模型

Parameters

\think\Model $model

关联模型对象

\think\Model $result

父模型对象

array $bindAttr

绑定属性

Throws

\think\Exception

eagerlyWhere()

eagerlyWhere(object  $model, array  $where, string  $key, string  $relation, string  $subRelation = '', boolean|\Closure  $closure = false) : array

一对一 关联模型预查询(IN方式)

Parameters

object $model

关联模型对象

array $where

关联预查询条件

string $key

关联键名

string $relation

关联名

string $subRelation

子关联

boolean|\Closure $closure

Returns

array

resultSetBuild()

resultSetBuild(array  $resultSet) : mixed

封装关联数据集

Parameters

array $resultSet

数据集

Returns

mixed

getQueryFields()

getQueryFields(  $model) 

Parameters

$model

getRelationQueryFields()

getRelationQueryFields(  $fields,   $model) 

Parameters

$fields
$model

baseQuery()

baseQuery() : void

执行基础查询(仅执行一次)