Properties

$throughKey

$throughKey : string

中间关联表外键

Type

string

$throughPk

$throughPk : string

中间主键

Type

string

$through

$through : \think\db\BaseQuery

中间表查询对象

Type

\think\db\BaseQuery

$parent

$parent : \think\Model

父模型对象

Type

\think\Model

$model

$model : string

当前关联的模型类名

Type

string

$query

$query : \think\db\BaseQuery

关联模型查询对象

Type

\think\db\BaseQuery

$foreignKey

$foreignKey : string

关联表外键

Type

string

$localKey

$localKey : string

关联表主键

Type

string

$baseQuery

$baseQuery : boolean

是否执行关联基础查询

Type

boolean

$selfRelation

$selfRelation : boolean

是否为自关联

Type

boolean

$withLimit

$withLimit : integer

关联数据数量限制

Type

integer

$withField

$withField : array

关联数据字段限制

Type

array

Methods

__construct()

__construct(\think\Model  $parent, string  $model, string  $through, string  $foreignKey, string  $throughKey, string  $localKey, string  $throughPk) 

架构函数

Parameters

\think\Model $parent

上级模型对象

string $model

关联模型名

string $through

中间模型名

string $foreignKey

关联外键

string $throughKey

中间关联外键

string $localKey

当前模型主键

string $throughPk

中间模型主键

getRelation()

getRelation(array  $subRelation = array(), \Closure  $closure = null) : \think\Model

延迟获取关联数据

Parameters

array $subRelation

子关联名

\Closure $closure

闭包查询条件

Returns

\think\Model

has()

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

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

Parameters

string $operator

比较操作符

integer $count

个数

string $id

关联表的统计字段

string $joinType

JOIN类型

\think\db\BaseQuery $query

Query对象

Returns

\think\db\BaseQuery

hasWhere()

hasWhere(mixed  $where = array(), mixed  $fields = null, string  $joinType = '', \think\db\BaseQuery  $query = null) : \think\db\BaseQuery

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

Parameters

mixed $where

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

mixed $fields

字段

string $joinType

JOIN类型

\think\db\BaseQuery $query

Query对象

Returns

\think\db\BaseQuery

eagerlyResultSet()

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

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

Parameters

array $resultSet

数据集

string $relation

当前关联名

array $subRelation

子关联名

\Closure $closure

闭包

array $cache

关联缓存

eagerlyResult()

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

预载入关联查询(数据)

Parameters

\think\Model $result

数据对象

string $relation

当前关联名

array $subRelation

子关联名

\Closure $closure

闭包

array $cache

关联缓存

relationCount()

relationCount(\think\Model  $result, \Closure  $closure = null, string  $aggregate = 'count', string  $field = '*', string  $name = null) : mixed

关联统计

Parameters

\think\Model $result

数据对象

\Closure $closure

闭包

string $aggregate

聚合查询方法

string $field

字段

string $name

统计字段别名

Returns

mixed

getRelationCountQuery()

getRelationCountQuery(\Closure  $closure = null, string  $aggregate = 'count', string  $field = '*', string  $name = null) : string

创建关联统计子查询

Parameters

\Closure $closure

闭包

string $aggregate

聚合查询方法

string $field

字段

string $name

统计字段别名

Returns

string

getParent()

getParent() : \think\Model

获取关联的所属模型

Returns

\think\Model

getQuery()

getQuery() : \think\db\BaseQuery

获取当前的关联模型类的Query实例

Returns

\think\db\BaseQuery

getModel()

getModel() : \think\Model

获取当前的关联模型类的实例

Returns

\think\Model

isSelfRelation()

isSelfRelation() : boolean

当前关联是否为自关联

Returns

boolean

update()

update(array  $data = array()) : integer

更新数据

Parameters

array $data

更新数据

Returns

integer

delete()

delete(mixed  $data = null) : integer

删除记录

Parameters

mixed $data

表达式 true 表示强制删除

Throws

\think\db\exception\DbException
\think\model\PDOException

Returns

integer

withLimit()

withLimit(integer  $limit) : $this

限制关联数据的数量

Parameters

integer $limit

关联数量限制

Returns

$this

withField()

withField(array  $field) : $this

限制关联数据的字段

Parameters

array $field

关联字段限制

Returns

$this

__call()

__call(  $method,   $args) 

Parameters

$method
$args

eagerlyWhere()

eagerlyWhere(array  $where, string  $key, array  $subRelation = array(), \Closure  $closure = null, array  $cache = array()) : array

关联模型预查询

Parameters

array $where

关联预查询条件

string $key

关联键名

array $subRelation

子关联

\Closure $closure
array $cache

关联缓存

Returns

array

baseQuery()

baseQuery() : void

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

resultSetBuild()

resultSetBuild(array  $resultSet, \think\Model  $parent = null) : mixed

封装关联数据集

Parameters

array $resultSet

数据集

\think\Model $parent

父模型

Returns

mixed

getQueryFields()

getQueryFields(\think\model\string  $model) 

Parameters

\think\model\string $model

getRelationQueryFields()

getRelationQueryFields(  $fields, \think\model\string  $model) 

Parameters

$fields
\think\model\string $model

getQueryWhere()

getQueryWhere(array  $where, \think\model\string  $relation) 

Parameters

array $where
\think\model\string $relation

getClosureType()

getClosureType(\Closure  $closure) : mixed

判断闭包的参数类型

Parameters

\Closure $closure

Returns

mixed