ThinkPHP5


think\Model
library\think\Model.php at line 41

Class Model

Model
All Known Subclasses:
think\model\Merge think\model\Pivot

public abstract class Model

Class Model

Method:
static PaginatorCollection paginate(integer $listRows = 15, boolean $simple = false, array $config = []) 分页查询
static mixed value($field, $default = null) 得到某个字段的值
static array column($field, $key = '') 得到某个列的数组
static integer count($field = '*') COUNT查询
static integer sum($field = '*') SUM查询
static integer min($field = '*') MIN查询
static integer max($field = '*') MAX查询
static integer avg($field = '*') AVG查询
static setField($field, $value = '')
static Query where($field, $op = null, $condition = null) 指定AND查询条件
static static findOrFail($data = null) 查找单条记录 如果不存在则抛出异常

Constructor Summary
void

__construct(array|object data)

架构函数

Method Summary
Query

db(bool baseQuery)

获取当前模型的数据库查询对象

protected Relation|Query

relation(string|array relation)

获取关联模型实例

protected void

initialize()

初始化模型

protected static void

init()

初始化处理

$this

data(mixed data, mixed value)

设置数据对象值

mixed

getData(string name)

获取对象原始数据 如果不存在指定字段返回false

$this

setAttr(string name, mixed value, array data)

修改器 设置数据对象值

protected mixed

autoWriteTimestamp(string name)

自动写入时间戳

protected mixed

writeTransform(mixed value, string|array type)

数据写入 类型转换

mixed

getAttr(string name)

获取器 获取数据对象的值

protected mixed

readTransform(mixed value, string|array type)

数据读取 类型转换

$this

append(array append)

设置需要追加的输出属性

$this

hidden(array hidden)

设置需要隐藏的输出属性

$this

visible(array visible)

设置需要输出的属性

array

toArray()

转换当前模型对象为数组

string

toJson(integer options)

转换当前模型对象为JSON字符串

mixed

getPk(string name)

获取模型对象的主键

protected bool

isPk(string key)

判断一个字段名是否为主键字段

integer|false

save(array data, array where, string sequence)

保存当前数据对象

array|false

saveAll(array dataSet, boolean replace)

保存多个数据到当前数据对象

$this

allowField(bool|array field)

设置允许写入的字段

$this

isUpdate(bool update, mixed where)

是否为更新数据

protected void

autoCompleteData(array auto)

数据自动完成

integer

delete()

删除当前的记录

$this

auto(array fields)

设置自动完成的字段( 规则通过修改器定义)

$this

validate(array|string|bool rule, array msg)

设置字段验证

$this

validateFailException(bool fail)

设置验证失败后是否抛出异常

protected bool

validateData(array data)

自动验证数据

string

getError()

返回模型的错误信息

static void

event(string event, callable callback, bool override)

注册回调方法

protected bool

trigger(string event, mixed params)

触发事件

static $this

create(array data)

写入数据

static $this

update(array data, array where)

更新数据

static static

get(mixed data, array|string with, bool cache)

查找单条记录

static static[]|false

all(mixed data, array|string with, bool cache)

查找所有记录

protected static Query

parseQuery(mixed data, string with, bool cache)

分析查询表达式

static integer

destroy(mixed data)

删除记录

static Model

scope(string|array|Closure name, mixed ...$params)

命名范围

static Model

useGlobalScope(bool use)

设置是否使用全局查询范围

static Model

has(string relation, string operator, integer count, string id)

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

static Model

hasWhere(string relation, mixed where)

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

protected static string

parseModel(string model)

解析模型的完整命名空间

$this

relationQuery(string|array relations)

查询当前模型的关联数据

array

eagerlyResultSet(array resultSet, string relation)

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

Model

eagerlyResult(Model result, string relation)

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

Relation

hasOne(string model, string foreignKey, string localKey, array alias, string joinType)

HAS ONE 关联定义

Relation

belongsTo(string model, string foreignKey, string otherKey, array alias, string joinType)

BELONGS TO 关联定义

Relation

hasMany(string model, string foreignKey, string localKey, array alias)

HAS MANY 关联定义

Relation

hasManyThrough(string model, string through, string foreignKey, string throughKey, string localKey, array alias)

HAS MANY 远程关联定义

Relation

belongsToMany(string model, string table, string foreignKey, string localKey, array alias)

BELONGS TO MANY 关联定义

protected static void

getDb()

void

jsonSerialize()

void

offsetSet(mixed name, mixed value)

void

offsetExists(mixed name)

void

offsetUnset(mixed name)

void

offsetGet(mixed name)

Constructor Detail

library\think\Model.php at line 117

__construct

public void __construct(array|object data)

架构函数

Parameters:
data - 数据

Method Detail

library\think\Model.php at line 153

db

public Query db(bool baseQuery)

获取当前模型的数据库查询对象

Parameters:
baseQuery - 是否调用全局查询范围

library\think\Model.php at line 187

relation

protected Relation|Query relation(string|array relation)

获取关联模型实例

Parameters:
relation - 关联查询

library\think\Model.php at line 206

initialize

protected void initialize()

初始化模型


library\think\Model.php at line 220

init

protected static void init()

初始化处理


library\think\Model.php at line 230

data

public $this data(mixed data, mixed value)

设置数据对象值

Parameters:
data - 数据或者属性名
value - 值

library\think\Model.php at line 259

getData

public mixed getData(string name)

获取对象原始数据 如果不存在指定字段返回false

Parameters:
name - 字段名 留空获取全部
Throws:
InvalidArgumentException

library\think\Model.php at line 278

setAttr

public $this setAttr(string name, mixed value, array data)

修改器 设置数据对象值

Parameters:
name - 属性名
value - 属性值
data - 数据

library\think\Model.php at line 309

autoWriteTimestamp

protected mixed autoWriteTimestamp(string name)

自动写入时间戳

Parameters:
name - 时间戳字段

library\think\Model.php at line 342

writeTransform

protected mixed writeTransform(mixed value, string|array type)

数据写入 类型转换

Parameters:
value - 值
type - 要转换的类型

library\think\Model.php at line 397

getAttr

public mixed getAttr(string name)

获取器 获取数据对象的值

Parameters:
name - 名称
Throws:
InvalidArgumentException

library\think\Model.php at line 435

readTransform

protected mixed readTransform(mixed value, string|array type)

数据读取 类型转换

Parameters:
value - 值
type - 要转换的类型

library\think\Model.php at line 490

append

public $this append(array append)

设置需要追加的输出属性

Parameters:
append - 属性列表

library\think\Model.php at line 502

hidden

public $this hidden(array hidden)

设置需要隐藏的输出属性

Parameters:
hidden - 属性列表

library\think\Model.php at line 513

visible

public $this visible(array visible)

设置需要输出的属性


library\think\Model.php at line 524

toArray

public array toArray()

转换当前模型对象为数组


library\think\Model.php at line 568

toJson

public string toJson(integer options)

转换当前模型对象为JSON字符串

Parameters:
options - json参数

library\think\Model.php at line 579

getPk

public mixed getPk(string name)

获取模型对象的主键

Parameters:
name - 模型名

library\think\Model.php at line 596

isPk

protected bool isPk(string key)

判断一个字段名是否为主键字段

Parameters:
key - 名称

library\think\Model.php at line 615

save

public integer|false save(array data, array where, string sequence)

保存当前数据对象

Parameters:
data - 数据
where - 更新条件
sequence - 自增序列名

library\think\Model.php at line 740

saveAll

public array|false saveAll(array dataSet, boolean replace)

保存多个数据到当前数据对象

Parameters:
dataSet - 数据
replace - 是否自动识别更新和写入

library\think\Model.php at line 781

allowField

public $this allowField(bool|array field)

设置允许写入的字段

Parameters:
field - 允许写入的字段 如果为true只允许写入数据表字段

library\think\Model.php at line 797

isUpdate

public $this isUpdate(bool update, mixed where)

是否为更新数据


library\think\Model.php at line 812

autoCompleteData

protected void autoCompleteData(array auto)

数据自动完成

Parameters:
auto - 要自动更新的字段列表

library\think\Model.php at line 830

delete

public integer delete()

删除当前的记录


library\think\Model.php at line 848

auto

public $this auto(array fields)

设置自动完成的字段( 规则通过修改器定义)

Parameters:
fields - 需要自动完成的字段

library\think\Model.php at line 861

validate

public $this validate(array|string|bool rule, array msg)

设置字段验证

Parameters:
rule - 验证规则 true表示自动读取验证器类
msg - 提示信息

library\think\Model.php at line 880

validateFailException

public $this validateFailException(bool fail)

设置验证失败后是否抛出异常

Parameters:
fail - 是否抛出异常

library\think\Model.php at line 892

validateData

protected bool validateData(array data)

自动验证数据

Parameters:
data - 验证数据

library\think\Model.php at line 928

getError

public string getError()

返回模型的错误信息


library\think\Model.php at line 941

event

public static void event(string event, callable callback, bool override)

注册回调方法

Parameters:
event - 事件名
callback - 回调方法
override - 是否覆盖

library\think\Model.php at line 957

trigger

protected bool trigger(string event, mixed params)

触发事件

Parameters:
event - 事件名
params - 传入参数(引用)

library\think\Model.php at line 978

create

public static $this create(array data)

写入数据

Parameters:
data - 数据数组

library\think\Model.php at line 992

update

public static $this update(array data, array where)

更新数据

Parameters:
data - 数据数组
where - 更新条件

library\think\Model.php at line 1008

get

public static static get(mixed data, array|string with, bool cache)

查找单条记录

Parameters:
data - 主键值或者查询条件(闭包)
with - 关联预查询
cache - 是否缓存
Throws:
exception\DbException

library\think\Model.php at line 1023

all

public static static[]|false all(mixed data, array|string with, bool cache)

查找所有记录

Parameters:
data - 主键列表或者查询条件(闭包)
with - 关联预查询
cache - 是否缓存
Throws:
exception\DbException

library\think\Model.php at line 1037

parseQuery

protected static Query parseQuery(mixed data, string with, bool cache)

分析查询表达式

Parameters:
data - 主键列表或者查询条件(闭包)
with - 关联预查询
cache - 是否缓存

library\think\Model.php at line 1059

destroy

public static integer destroy(mixed data)

删除记录

Parameters:
data - 主键列表 支持闭包查询条件
Returns:
成功删除的记录数

library\think\Model.php at line 1090

scope

public static Model scope(string|array|Closure name, mixed ...$params)

命名范围

Parameters:
name - 命名范围名称 逗号分隔
...$params - 参数调用

library\think\Model.php at line 1120

useGlobalScope

public static Model useGlobalScope(bool use)

设置是否使用全局查询范围

Parameters:
use - 是否启用全局查询范围

library\think\Model.php at line 1136

has

public static Model has(string relation, string operator, integer count, string id)

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

Parameters:
relation - 关联方法名
operator - 比较操作符
count - 个数
id - 关联表的统计字段

library\think\Model.php at line 1160

hasWhere

public static Model hasWhere(string relation, mixed where)

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

Parameters:
relation - 关联方法名
where - 查询条件(数组或者闭包)

library\think\Model.php at line 1192

parseModel

protected static string parseModel(string model)

解析模型的完整命名空间

Parameters:
model - 模型名(或者完整类名)

library\think\Model.php at line 1209

relationQuery

public $this relationQuery(string|array relations)

查询当前模型的关联数据

Parameters:
relations - 关联名

library\think\Model.php at line 1228

eagerlyResultSet

public array eagerlyResultSet(array resultSet, string relation)

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

Parameters:
resultSet - 数据集
relation - 关联名

library\think\Model.php at line 1240

eagerlyResult

public Model eagerlyResult(Model result, string relation)

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

Parameters:
result - 数据对象
relation - 关联名

library\think\Model.php at line 1255

hasOne

public Relation hasOne(string model, string foreignKey, string localKey, array alias, string joinType)

HAS ONE 关联定义

Parameters:
model - 模型名
foreignKey - 关联外键
localKey - 关联主键
alias - 别名定义
joinType - JOIN类型

library\think\Model.php at line 1274

belongsTo

public Relation belongsTo(string model, string foreignKey, string otherKey, array alias, string joinType)

BELONGS TO 关联定义

Parameters:
model - 模型名
foreignKey - 关联外键
otherKey - 关联主键
alias - 别名定义
joinType - JOIN类型

library\think\Model.php at line 1292

hasMany

public Relation hasMany(string model, string foreignKey, string localKey, array alias)

HAS MANY 关联定义

Parameters:
model - 模型名
foreignKey - 关联外键
localKey - 关联主键
alias - 别名定义

library\think\Model.php at line 1312

hasManyThrough

public Relation hasManyThrough(string model, string through, string foreignKey, string throughKey, string localKey, array alias)

HAS MANY 远程关联定义

Parameters:
model - 模型名
through - 中间模型名
foreignKey - 关联外键
throughKey - 关联外键
localKey - 关联主键
alias - 别名定义

library\think\Model.php at line 1334

belongsToMany

public Relation belongsToMany(string model, string table, string foreignKey, string localKey, array alias)

BELONGS TO MANY 关联定义

Parameters:
model - 模型名
table - 中间表名
foreignKey - 关联外键
localKey - 当前模型关联键
alias - 别名定义

library\think\Model.php at line 1365

getDb

protected static void getDb()

library\think\Model.php at line 1435

jsonSerialize

public void jsonSerialize()

library\think\Model.php at line 1441

offsetSet

public void offsetSet(mixed name, mixed value)

library\think\Model.php at line 1446

offsetExists

public void offsetExists(mixed name)

library\think\Model.php at line 1451

offsetUnset

public void offsetUnset(mixed name)

library\think\Model.php at line 1456

offsetGet

public void offsetGet(mixed name)

ThinkPHP5