class Model

基础Model类,在CmlPHP中负责数据的存取(目前包含db/cache以及为了简化操作db而封装的快捷方法)

以下方法只是为了方便配合Model中的快捷方法(http://doc.cmlphp.com/devintro/model/mysql/fastmethod/readme.html)使用 并没有列出db中的所有方法。其它未列出的方法建议还是通过$this->db()->xxx使用

Properties

protected bool $useMaster 快捷方法-读是否强制使用主库
protected null|string $tablePrefix 表前缀
protected string $db 数据库配置key
protected null|string $table 表名

Methods

Pdo
db(string $conf = '')

获取db实例

closeDb(string $conf = 'default_db')

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

cache(string $conf = 'default_cache')

获取cache实例

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

初始化一个Model实例

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

获取表名

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)

增加一条数据-快捷方法

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

增加多条数据-快捷方法

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

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

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)

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

string
getDbConf()

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

Pdo
mapDbAndTable()

自动根据 db属性执行$this->db(xxx)方法; table/tablePrefix属性执行$this->db('xxx')->table('tablename', 'tablePrefix')方法

static Pdo
getInstanceAndRunMapDbAndTable(null|string $table = null, null|string $tablePrefix = null)

获取model实例并同时执行mapDbAndTable

static Redis
staticCache(string $conf = 'default_cache')

静态方式获取cache实例

Pdo
__call($dbMethod, $arguments)

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

static Pdo
__callStatic($dbMethod, $arguments)

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

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

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

Db|Model
where(array $column, int $value = '')

where条件组装-相等

Db|Model
whereColumn(string $column, string $column2 = '')

where条件组装-两个列相等

Db|Model
whereRaw(string $where, array $params = [])

where条件组装-原生条件

Db|Model
whereNot(string $column, int $value)

where条件组装-不等

Db|Model
whereGt(string $column, int $value = '')

where条件组装-大于

Db|Model
whereLt(string $column, int $value = '')

where条件组装-小于

Db|Model
whereGte(string $column, int $value = '')

where条件组装-大于等于

Db|Model
whereLte(string $column, int $value = '')

where条件组装-小于等于

Db|Model
whereIn(string $column, array $value)

where条件组装-IN

Db|Model
whereNotIn(string $column, array $value)

where条件组装-NOT IN

Db|Model
whereLike(string $column, bool $leftBlur = false, string $value, bool $rightBlur = false)

where条件组装-LIKE

Db|Model
whereNotLike(string $column, bool $leftBlur = false, string $value, bool $rightBlur = false)

where条件组装-NOT LIKE

Db|Model
whereRegExp(string $column, string $value)

where条件组装-RegExp

Db|Model
whereBetween(string $column, int $value, int $value2 = null)

where条件组装-BETWEEN

Db|Model
whereNotBetween(string $column, int $value, int $value2 = null)

where条件组装-NotBetween

Db|Model
whereNull(string $column)

where条件组装-IS NULL

Db|Model
whereNotNull(string $column)

where条件组装-IS NOT NULL

Db|Model
columns(array $columns = '*')

选择列

Db|Model
orderBy(string $column, string $order = 'ASC')

排序

Db|Model
groupBy(string $column)

分组

Db|Model
having(string $column, $operator = '=', $value)

分组

Db|Model
paramsAutoReset(bool $autoReset = true, bool $alwaysClearTable = false, bool $alwaysClearColumns = true)

orm参数是否自动重置, 默认在执行语句后会重置orm参数, 包含查询的表、字段信息、条件等信息

Db|Model
noCache()

标记本次查询不使用缓存

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

定义操作的表

Db|Model
lBrackets()

where条件增加左括号

Db|Model
rBrackets()

where条件增加右括号

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
_and(callable $callable = null)

and条件操作

Db|Model
_or(callable $callable = null)

or条件操作

Details

at line 104
Pdo db(string $conf = '')

获取db实例

Parameters

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

Return Value

Pdo | \Cml\Db\MongoDB\MongoDB | \Cml\Db\Base

at line 129
closeDb(string $conf = 'default_db')

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

Parameters

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

at line 142
Redis cache(string $conf = 'default_cache')

获取cache实例

Parameters

string $conf 使用的缓存配置;

Return Value

Redis | \Cml\Cache\Apc | \Cml\Cache\File | \Cml\Cache\Memcache

at line 172
static Model 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

Model | \Cml\Db\MySql\Pdo | \Cml\Db\MongoDB\MongoDB | \Cml\Db\Base | $this

at line 194
string getTableName(bool $addTablePrefix = false, bool $addDbName = false)

获取表名

Parameters

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

Return Value

string

at line 221
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

at line 241
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

at line 260
int set(array $data, string $tableName = null, mixed $tablePrefix = null)

增加一条数据-快捷方法

Parameters

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

Return Value

int

at line 278
bool setMulti(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

at line 296
int upSet(array $data, array $up = [], 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中的数据
string $tableName 表名 不传会自动从当前Model中$table属性获取
mixed $tablePrefix 表前缀 不传会自动从当前Model中$tablePrefix属性获取再没有则获取配置中配置的前缀

Return Value

int

at line 313
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

at line 331
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

at line 350
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

at line 368
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

at line 387
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

at line 411
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

at line 429
string getDbConf()

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

Return Value

string

at line 439
Pdo mapDbAndTable()

自动根据 db属性执行$this->db(xxx)方法; table/tablePrefix属性执行$this->db('xxx')->table('tablename', 'tablePrefix')方法

Return Value

Pdo | \Cml\Db\MongoDB\MongoDB | \Cml\Db\Base

at line 452
static Pdo getInstanceAndRunMapDbAndTable(null|string $table = null, null|string $tablePrefix = null)

获取model实例并同时执行mapDbAndTable

Parameters

null|string $table 表名
null|string $tablePrefix 表前缀

Return Value

Pdo | \Cml\Db\MongoDB\MongoDB | \Cml\Db\Base

at line 464
static Redis staticCache(string $conf = 'default_cache')

静态方式获取cache实例

Parameters

string $conf 使用的缓存配置;

Return Value

Redis | \Cml\Cache\Apc | \Cml\Cache\File | \Cml\Cache\Memcache

at line 477
Pdo __call($dbMethod, $arguments)

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

Parameters

$dbMethod
$arguments

Return Value

Pdo | \Cml\Db\MongoDB\MongoDB | $this

at line 495
static Pdo __callStatic($dbMethod, $arguments)

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

Parameters

$dbMethod
$arguments

Return Value

Pdo | \Cml\Db\MongoDB\MongoDB | self

at line 514
Db when(bool $condition, callable $trueCallback, callable $falseCallback = null)

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

Parameters

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

Return Value

Db | \Cml\Db\MySql\Pdo | \Cml\Db\MongoDB\MongoDB | $this

at line 53
Db|Model where(array $column, int $value = '')

where条件组装-相等

Parameters

array $column
int $value

Return Value

Db|Model

at line 53
Db|Model whereColumn(string $column, string $column2 = '')

where条件组装-两个列相等

Parameters

string $column
string $column2

Return Value

Db|Model

at line 53
Db|Model whereRaw(string $where, array $params = [])

where条件组装-原生条件

Parameters

string $where
array $params

Return Value

Db|Model

at line 53
Db|Model whereNot(string $column, int $value)

where条件组装-不等

Parameters

string $column
int $value

Return Value

Db|Model

at line 53
Db|Model whereGt(string $column, int $value = '')

where条件组装-大于

Parameters

string $column
int $value

Return Value

Db|Model

at line 53
Db|Model whereLt(string $column, int $value = '')

where条件组装-小于

Parameters

string $column
int $value

Return Value

Db|Model

at line 53
Db|Model whereGte(string $column, int $value = '')

where条件组装-大于等于

Parameters

string $column
int $value

Return Value

Db|Model

at line 53
Db|Model whereLte(string $column, int $value = '')

where条件组装-小于等于

Parameters

string $column
int $value

Return Value

Db|Model

at line 53
Db|Model whereIn(string $column, array $value)

where条件组装-IN

Parameters

string $column
array $value

Return Value

Db|Model

at line 53
Db|Model whereNotIn(string $column, array $value)

where条件组装-NOT IN

Parameters

string $column
array $value

Return Value

Db|Model

at line 53
Db|Model whereLike(string $column, bool $leftBlur = false, string $value, bool $rightBlur = false)

where条件组装-LIKE

Parameters

string $column
bool $leftBlur
string $value
bool $rightBlur

Return Value

Db|Model

at line 53
Db|Model whereNotLike(string $column, bool $leftBlur = false, string $value, bool $rightBlur = false)

where条件组装-NOT LIKE

Parameters

string $column
bool $leftBlur
string $value
bool $rightBlur

Return Value

Db|Model

at line 53
Db|Model whereRegExp(string $column, string $value)

where条件组装-RegExp

Parameters

string $column
string $value

Return Value

Db|Model

at line 53
Db|Model whereBetween(string $column, int $value, int $value2 = null)

where条件组装-BETWEEN

Parameters

string $column
int $value
int $value2

Return Value

Db|Model

at line 53
Db|Model whereNotBetween(string $column, int $value, int $value2 = null)

where条件组装-NotBetween

Parameters

string $column
int $value
int $value2

Return Value

Db|Model

at line 53
Db|Model whereNull(string $column)

where条件组装-IS NULL

Parameters

string $column

Return Value

Db|Model

at line 53
Db|Model whereNotNull(string $column)

where条件组装-IS NOT NULL

Parameters

string $column

Return Value

Db|Model

at line 53
Db|Model columns(array $columns = '*')

选择列

Parameters

array $columns

Return Value

Db|Model

at line 53
Db|Model orderBy(string $column, string $order = 'ASC')

排序

Parameters

string $column
string $order

Return Value

Db|Model

at line 53
Db|Model groupBy(string $column)

分组

Parameters

string $column

Return Value

Db|Model

at line 53
Db|Model having(string $column, $operator = '=', $value)

分组

Parameters

string $column
$operator
$value

Return Value

Db|Model

at line 53
Db|Model paramsAutoReset(bool $autoReset = true, bool $alwaysClearTable = false, bool $alwaysClearColumns = true)

orm参数是否自动重置, 默认在执行语句后会重置orm参数, 包含查询的表、字段信息、条件等信息

Parameters

bool $autoReset
bool $alwaysClearTable
bool $alwaysClearColumns

Return Value

Db|Model

at line 53
Db|Model noCache()

标记本次查询不使用缓存

Return Value

Db|Model

at line 53
Db|Model table(string $table = '', null $tablePrefix = null)

定义操作的表

Parameters

string $table
null $tablePrefix

Return Value

Db|Model

at line 53
Db|Model lBrackets()

where条件增加左括号

Return Value

Db|Model

at line 53
Db|Model rBrackets()

where条件增加右括号

Return Value

Db|Model

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

join内联结

Parameters

array $table
string $on
null $tablePrefix

Return Value

Db|Model

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

leftJoin左联结

Parameters

array $table
string $on
null $tablePrefix

Return Value

Db|Model

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

rightJoin右联结

Parameters

array $table
string $on
null $tablePrefix

Return Value

Db|Model

at line 53
Db|Model _and(callable $callable = null)

and条件操作

Parameters

callable $callable

Return Value

Db|Model

at line 53
Db|Model _or(callable $callable = null)

or条件操作

Parameters

callable $callable

Return Value

Db|Model