class Model

Model

Traits

基础Model类,在CmlPHP中负责数据的存取(目前包含db/cache)
Trait QuickMethod

Properties

protected bool $useMaster 快捷方法-读是否强制使用主库 from Base
protected mixed $cacheExpire 查询数据缓存时间 from Base
protected null|string $tablePrefix 表前缀 from Base
protected string $db 数据库配置key from Base
protected null|string $table 表名 from Base
protected null $primaryKey 主键-不设置则自动从缓存获取 from Base
protected $pdoFetchStyle pdo获取数据的方式,默认返回数组 from Base

Methods

Db
db(string $conf = '')

获取db实例

from Base
$this
cloneSelf()

clone一个自身用于复杂条件

from Base
closeDb(string $conf = 'default_db')

当程序连接N个db的时候用于释放于用连接以节省内存

from Base
setCacheExpire(mixed $cacheExpire = null)

设置查询数据缓存时间

from Base
cache(string $conf = 'default_cache')

获取cache实例

from Base
static Base
getInstance(null|string $table = null, null|string $tablePrefix = null, null|string|array $db = null)

获取一个Model实例

from Base
string
getTableName(bool $addTablePrefix = false, bool $addDbName = false)

获取表名

from Base
string
getDbConf()

获取当前Model的数据库配置串

from Base
Db
mapDbAndTable() deprecated

兼容旧版本--已经不再需要

from Base
static Cache
staticCache(string $conf = 'default_cache')

静态方式获取cache实例

from Base
Base|mixed
__call($dbMethod, $arguments)

当访问model中不存在的方法时直接调用$this->db()的相关方法

from Base
static Base
__callStatic($dbMethod, $arguments)

当访问model中不存在的方法时直接调用相关model中的db()的相关方法

from Base
when(bool $condition, callable $trueCallback, callable $falseCallback = null)

根据条件是否成立执行对应的闭包

from Base
mixed
getPrimaryKey(string $tableName = null, mixed $tablePrefix = null)

获取主键

from Base
__clone()

No description

from Base
string|array
buildSql($offset = null, $limit = null, $isSelect = false)

构建sql

from Base
int
delete()

删除数据

from Base
int
count($field = '*', $isMulti = false, $useMaster = false)

获取 COUNT(字段名或*) 的结果

from Base
float
max($field = '*', $isMulti = false, $useMaster = false)

获取 MAX(字段名或*) 的结果

from Base
float
min($field = '*', $isMulti = false, $useMaster = false)

获取 MIN(字段名或*) 的结果

from Base
float
sum($field = '*', $isMulti = false, $useMaster = false)

获取 SUM(字段名或*) 的结果

from Base
float
avg($field = '*', $isMulti = false, $useMaster = false)

获取 AVG(字段名或*) 的结果

from Base
bool|array
getByColumn(mixed $val, string $column = null, string $tableName = null, mixed $tablePrefix = null)

通过某个字段获取单条数据-快捷方法

bool|array
getMultiByColumn(mixed $val, string $column = null, string $tableName = null, mixed $tablePrefix = null)

通过某个字段获取多条数据-快捷方法

int
set(array $data, string $tableName = null, mixed $tablePrefix = null) deprecated

No description

int
insert(array $data, string $tableName = null, mixed $tablePrefix = null)

增加一条数据-快捷方法

bool
setMulti(array $field, array $data, string $tableName = null, mixed $tablePrefix = null, bool $openTransAction = true) deprecated

No description

bool
insertMulti(array $field, array $data, string $tableName = null, mixed $tablePrefix = null, bool $openTransAction = true)

增加多条数据-快捷方法

int
upSet(array $data, array $up = [], array $upIgnoreField = [], string $tableName = null, mixed $tablePrefix = null)

插入或更新一条记录,当UNIQUE index or PRIMARY KEY存在的时候更新,不存在的时候插入 若AUTO_INCREMENT存在则返回 AUTO_INCREMENT 的值.

bool
replaceMulti(array $field, array $data, string $tableName = null, mixed $tablePrefix = null, bool $openTransAction = true)

插入或替换多条记录

int
replaceInto(array $data, string $tableName = null, mixed $tablePrefix = null)

插入或替换一条记录 若AUTO_INCREMENT存在则返回 AUTO_INCREMENT 的值.

bool
updateByColumn(int $val, array $data, string $column = null, string $tableName = null, mixed $tablePrefix = null)

通过字段更新数据-快捷方法

bool
delByColumn(mixed $val, string $column = null, string $tableName = null, mixed $tablePrefix = null)

通过主键删除数据-快捷方法

mixed
getTotalNums(null $pkField = null, string $tableName = null, mixed $tablePrefix = null)

获取数据的总数

array
getList(int $offset = 0, int $limit = 20, string|array $order = 'DESC', string $tableName = null, mixed $tablePrefix = null)

获取数据列表

array
getListByPaginate(int $limit = 20, string|array $order = 'DESC', string $tableName = null, mixed $tablePrefix = null)

以分页的方式获取数据列表

forceIndex(string $index, string $tableName = null, string $tablePrefix = null)

强制使用索引

Db|Model
table(|array $table = '', null $tablePrefix = null)

定义操作的表

Db|Model
join(array $table, string $on, null $tablePrefix = null)

join内联结

Db|Model
leftJoin(array $table, string $on, null $tablePrefix = null)

leftJoin左联结

Db|Model
rightJoin(array $table, string $on, null $tablePrefix = null)

rightJoin右联结

Db|Model
noCache()

标记本次查询不使用缓存

array
select($offset = null, $limit = null, $useMaster = false, $fieldAsKey = false)

获取多条数据

array
paginate($limit, $useMaster = false, $page = null, $fieldAsKey = false)

分页获取数据

array|false
getOne($useMaster = false)

获取一条数据

int
insertId()

获取上一INSERT的主键值

int
update($key, $data = null, $and = true, $tablePrefix = null)

No description

Details

in Base at line 107
Db db(string $conf = '')

获取db实例

Parameters

string $conf 使用的数据库配置;

Return Value

Db | DbBase

in Base at line 136
$this cloneSelf()

clone一个自身用于复杂条件

Return Value

$this

in Base at line 146
closeDb(string $conf = 'default_db')

当程序连接N个db的时候用于释放于用连接以节省内存

Parameters

string $conf 使用的数据库配置;

in Base at line 163
Base setCacheExpire(mixed $cacheExpire = null)

设置查询数据缓存时间

表数据有变动会自动更新缓存。设置为0表示表数据没变动时缓存不过期。 这边设置为3600意思是即使表数据没变动也让缓存每3600s失效一次,这样可以让缓存空间更合理的利用. 如果不想启用缓存直接配置为false 默认为null: 使用 db配置中的cache_expire

Parameters

mixed $cacheExpire

Return Value

Base

in Base at line 177
Cache cache(string $conf = 'default_cache')

获取cache实例

Parameters

string $conf 使用的缓存配置;

Return Value

Cache

in Base at line 203
static Base getInstance(null|string $table = null, null|string $tablePrefix = null, null|string|array $db = null)

获取一个Model实例

Parameters

null|string $table 表名
null|string $tablePrefix 表前缀
null|string|array $db db配置,默认default_db

Return Value

Base

in Base at line 225
string getTableName(bool $addTablePrefix = false, bool $addDbName = false)

获取表名

Parameters

bool $addTablePrefix 是否返回带表前缀的完整表名
bool $addDbName 是否带上dbname

Return Value

string

in Base at line 247
string getDbConf()

获取当前Model的数据库配置串

Return Value

string

in Base at line 258
Db mapDbAndTable() deprecated

deprecated

兼容旧版本--已经不再需要

Return Value

Db

in Base at line 270
static Cache staticCache(string $conf = 'default_cache')

静态方式获取cache实例

Parameters

string $conf 使用的缓存配置;

Return Value

Cache

in Base at line 283
Base|mixed __call($dbMethod, $arguments)

当访问model中不存在的方法时直接调用$this->db()的相关方法

Parameters

$dbMethod
$arguments

Return Value

Base|mixed

in Base at line 302
static Base __callStatic($dbMethod, $arguments)

当访问model中不存在的方法时直接调用相关model中的db()的相关方法

Parameters

$dbMethod
$arguments

Return Value

Base

in Base at line 324
Base when(bool $condition, callable $trueCallback, callable $falseCallback = null)

根据条件是否成立执行对应的闭包

Parameters

bool $condition 条件
callable $trueCallback 条件成立执行的闭包
callable $falseCallback 条件不成立执行的闭包

Return Value

Base

in Base at line 342
mixed getPrimaryKey(string $tableName = null, mixed $tablePrefix = null)

获取主键

Parameters

string $tableName 表名 不传会自动从当前Model中$table属性获取
mixed $tablePrefix 表前缀 不传会自动从当前Model中$tablePrefix属性获取再没有则获取配置中配置的前缀

Return Value

mixed

in Base at line 349
__clone()

in Base at line 32
string|array buildSql($offset = null, $limit = null, $isSelect = false)

构建sql

Parameters

$offset
$limit
$isSelect

Return Value

string|array

in Base at line 32
int delete()

删除数据

Return Value

int

in Base at line 32
int count($field = '*', $isMulti = false, $useMaster = false)

获取 COUNT(字段名或*) 的结果

Parameters

$field
$isMulti
$useMaster

Return Value

int

in Base at line 32
float max($field = '*', $isMulti = false, $useMaster = false)

获取 MAX(字段名或*) 的结果

Parameters

$field
$isMulti
$useMaster

Return Value

float

in Base at line 32
float min($field = '*', $isMulti = false, $useMaster = false)

获取 MIN(字段名或*) 的结果

Parameters

$field
$isMulti
$useMaster

Return Value

float

in Base at line 32
float sum($field = '*', $isMulti = false, $useMaster = false)

获取 SUM(字段名或*) 的结果

Parameters

$field
$isMulti
$useMaster

Return Value

float

in Base at line 32
float avg($field = '*', $isMulti = false, $useMaster = false)

获取 AVG(字段名或*) 的结果

Parameters

$field
$isMulti
$useMaster

Return Value

float

in QuickMethod at line 34
bool|array getByColumn(mixed $val, string $column = null, string $tableName = null, mixed $tablePrefix = null)

通过某个字段获取单条数据-快捷方法

Parameters

mixed $val
string $column 字段名 不传会自动分析表结构获取主键
string $tableName 表名 不传会自动从当前Model中$table属性获取
mixed $tablePrefix 表前缀 不传会自动从当前Model中$tablePrefix属性获取再没有则获取配置中配置的前缀

Return Value

bool|array

in QuickMethod at line 54
bool|array getMultiByColumn(mixed $val, string $column = null, string $tableName = null, mixed $tablePrefix = null)

通过某个字段获取多条数据-快捷方法

Parameters

mixed $val
string $column 字段名 不传会自动分析表结构获取主键
string $tableName 表名 不传会自动从当前Model中$table属性获取
mixed $tablePrefix 表前缀 不传会自动从当前Model中$tablePrefix属性获取再没有则获取配置中配置的前缀

Return Value

bool|array

in QuickMethod at line 73
int set(array $data, string $tableName = null, mixed $tablePrefix = null) deprecated

deprecated 请使用insert方法

Parameters

array $data 要新增的数据
string $tableName 表名 不传会自动从当前Model中$table属性获取
mixed $tablePrefix 表前缀 不传会自动从当前Model中$tablePrefix属性获取再没有则获取配置中配置的前缀

Return Value

int

in QuickMethod at line 87
int insert(array $data, string $tableName = null, mixed $tablePrefix = null)

增加一条数据-快捷方法

Parameters

array $data 要新增的数据
string $tableName 表名 不传会自动从当前Model中$table属性获取
mixed $tablePrefix 表前缀 不传会自动从当前Model中$tablePrefix属性获取再没有则获取配置中配置的前缀

Return Value

int

in QuickMethod at line 105
bool setMulti(array $field, array $data, string $tableName = null, mixed $tablePrefix = null, bool $openTransAction = true) deprecated

deprecated 请使用insertMulti方法

Parameters

array $field 要插入的字段 eg: ['title', 'msg', 'status', 'ctime’]
array $data 多条数据的值 eg: [['标题1', '内容1', 1, '2017'], ['标题2', '内容2', 1, '2017']]
string $tableName 表名 不传会自动从当前Model中$table属性获取
mixed $tablePrefix 表前缀 不传会自动从当前Model中$tablePrefix属性获取再没有则获取配置中配置的前缀
bool $openTransAction 是否开启事务 默认开启

Return Value

bool | array

in QuickMethod at line 121
bool insertMulti(array $field, array $data, string $tableName = null, mixed $tablePrefix = null, bool $openTransAction = true)

增加多条数据-快捷方法

Parameters

array $field 要插入的字段 eg: ['title', 'msg', 'status', 'ctime’]
array $data 多条数据的值 eg: [['标题1', '内容1', 1, '2017'], ['标题2', '内容2', 1, '2017']]
string $tableName 表名 不传会自动从当前Model中$table属性获取
mixed $tablePrefix 表前缀 不传会自动从当前Model中$tablePrefix属性获取再没有则获取配置中配置的前缀
bool $openTransAction 是否开启事务 默认开启

Return Value

bool | array

in QuickMethod at line 140
int upSet(array $data, array $up = [], array $upIgnoreField = [], string $tableName = null, mixed $tablePrefix = null)

插入或更新一条记录,当UNIQUE index or PRIMARY KEY存在的时候更新,不存在的时候插入 若AUTO_INCREMENT存在则返回 AUTO_INCREMENT 的值.

Parameters

array $data 插入的值 eg: ['username'=>'admin', 'email'=>'linhechengbush@live.com']
array $up 更新的值-会自动merge $data中的数据
array $upIgnoreField 更新的时候要忽略的的字段
string $tableName 表名 不传会自动从当前Model中$table属性获取
mixed $tablePrefix 表前缀 不传会自动从当前Model中$tablePrefix属性获取再没有则获取配置中配置的前缀

Return Value

int

in QuickMethod at line 158
bool replaceMulti(array $field, array $data, string $tableName = null, mixed $tablePrefix = null, bool $openTransAction = true)

插入或替换多条记录

Parameters

array $field 要插入的字段 eg: ['title', 'msg', 'status', 'ctime’]
array $data 多条数据的值 eg: [['标题1', '内容1', 1, '2017'], ['标题2', '内容2', 1, '2017']]
string $tableName 表名 不传会自动从当前Model中$table属性获取
mixed $tablePrefix 表前缀 不传会自动从当前Model中$tablePrefix属性获取再没有则获取配置中配置的前缀
bool $openTransAction 是否开启事务 默认开启

Return Value

bool | array

in QuickMethod at line 175
int replaceInto(array $data, string $tableName = null, mixed $tablePrefix = null)

插入或替换一条记录 若AUTO_INCREMENT存在则返回 AUTO_INCREMENT 的值.

Parameters

array $data 插入/更新的值 eg: ['username'=>'admin', 'email'=>'linhechengbush@live.com']
string $tableName 表名 不传会自动从当前Model中$table属性获取
mixed $tablePrefix 表前缀 不传会自动从当前Model中$tablePrefix属性获取再没有则获取配置中配置的前缀

Return Value

int

in QuickMethod at line 193
bool updateByColumn(int $val, array $data, string $column = null, string $tableName = null, mixed $tablePrefix = null)

通过字段更新数据-快捷方法

Parameters

int $val 字段值
array $data 更新的数据
string $column 字段名 不传会自动分析表结构获取主键
string $tableName 表名 不传会自动从当前Model中$table属性获取
mixed $tablePrefix 表前缀 不传会自动从当前Model中$tablePrefix属性获取再没有则获取配置中配置的前缀

Return Value

bool

in QuickMethod at line 212
bool delByColumn(mixed $val, string $column = null, string $tableName = null, mixed $tablePrefix = null)

通过主键删除数据-快捷方法

Parameters

mixed $val
string $column 字段名 不传会自动分析表结构获取主键
string $tableName 表名 不传会自动从当前Model中$table属性获取
mixed $tablePrefix 表前缀 不传会自动从当前Model中$tablePrefix属性获取再没有则获取配置中配置的前缀

Return Value

bool

in QuickMethod at line 230
mixed getTotalNums(null $pkField = null, string $tableName = null, mixed $tablePrefix = null)

获取数据的总数

Parameters

null $pkField 主键的字段名
string $tableName 表名 不传会自动从当前Model中$table属性获取
mixed $tablePrefix 表前缀 不传会自动从当前Model中$tablePrefix属性获取再没有则获取配置中配置的前缀

Return Value

mixed

in QuickMethod at line 249
array getList(int $offset = 0, int $limit = 20, string|array $order = 'DESC', string $tableName = null, mixed $tablePrefix = null)

获取数据列表

Parameters

int $offset 偏移量
int $limit 返回的条数
string|array $order 传asc 或 desc 自动取主键 或 ['id'=>'desc', 'status' => 'asc']
string $tableName 表名 不传会自动从当前Model中$table属性获取
mixed $tablePrefix 表前缀 不传会自动从当前Model中$tablePrefix属性获取再没有则获取配置中配置的前缀

Return Value

array

in QuickMethod at line 273
array getListByPaginate(int $limit = 20, string|array $order = 'DESC', string $tableName = null, mixed $tablePrefix = null)

以分页的方式获取数据列表

Parameters

int $limit 每页返回的条数
string|array $order 传asc 或 desc 自动取主键 或 ['id'=>'desc', 'status' => 'asc']
string $tableName 表名 不传会自动从当前Model中$table属性获取
mixed $tablePrefix 表前缀 不传会自动从当前Model中$tablePrefix属性获取再没有则获取配置中配置的前缀

Return Value

array

in QuickMethod at line 295
QuickMethod forceIndex(string $index, string $tableName = null, string $tablePrefix = null)

强制使用索引

Parameters

string $index 要强制使用的索引
string $tableName | null $tableName 要强制索引的表名(不带前缀) 不传会自动从当前Model中$table属性获取
string $tablePrefix | null $tablePrefix 表前缀 不传会自动从当前Model中$tablePrefix属性获取再没有则获取配置中配置的前缀

Return Value

QuickMethod

at line 34
Db|Model table(|array $table = '', null $tablePrefix = null)

定义操作的表

Parameters

|array $table
null $tablePrefix

Return Value

Db|Model

at line 34
Db|Model join(array $table, string $on, null $tablePrefix = null)

join内联结

Parameters

array $table
string $on
null $tablePrefix

Return Value

Db|Model

at line 34
Db|Model leftJoin(array $table, string $on, null $tablePrefix = null)

leftJoin左联结

Parameters

array $table
string $on
null $tablePrefix

Return Value

Db|Model

at line 34
Db|Model rightJoin(array $table, string $on, null $tablePrefix = null)

rightJoin右联结

Parameters

array $table
string $on
null $tablePrefix

Return Value

Db|Model

at line 34
Db|Model noCache()

标记本次查询不使用缓存

Return Value

Db|Model

at line 34
array select($offset = null, $limit = null, $useMaster = false, $fieldAsKey = false)

获取多条数据

Parameters

$offset
$limit
$useMaster
$fieldAsKey

Return Value

array

at line 34
array paginate($limit, $useMaster = false, $page = null, $fieldAsKey = false)

分页获取数据

Parameters

$limit
$useMaster
$page
$fieldAsKey

Return Value

array

at line 34
array|false getOne($useMaster = false)

获取一条数据

Parameters

$useMaster

Return Value

array|false

at line 34
int insertId()

获取上一INSERT的主键值

Return Value

int

at line 34
int update($key, $data = null, $and = true, $tablePrefix = null)

Parameters

$key
$data
$and
$tablePrefix

Return Value

int