FLEA_Db_TableDataGateway类参考

继承图,类FLEA_Db_TableDataGateway

FLEA_Rbac_RolesManager FLEA_Rbac_UsersManager FLEA_Com_RBAC_RolesManager FLEA_Com_RBAC_UsersManager

所有成员的列表。

公有成员

 FLEA_Db_TableDataGateway ($params=null)
 setDBO (&$dbo)
getDBO ()
find ($conditions, $sort=null, $fields= '*', $queryLinks=true)
findAll ($conditions=null, $sort=null, $limit=null, $fields= '*', $queryLinks=true)
 assembleRecursionRow ($mappingName, &$row, $enabledLinks=null)
 assembleRecursionRowset ($mappingName, &$rowset, $enabledLinks=null)
findByField ($field, $value, $sort=null, $fields= '*')
findAllByField ($field, $value, $sort=null, $limit=null, $fields= '*')
findAllByPkvs ($pkvs, $conditions=null, $sort=null, $limit=null, $fields= '*', $queryLinks=true)
findBySql ($sql, $limit=null)
 findCount ($conditions=null, $fields=null)
 save (&$row, $saveLinks=true, $updateCounter=true)
 saveRowset (&$rowset, $saveLinks=true)
 replace (&$row)
 replaceRowset (&$rowset)
 update (&$row, $saveLinks=true)
 updateRowset (&$rowset, $saveLinks=true)
 updateByConditions ($conditions, &$row)
 updateField ($conditions, $field, $value)
 incrField ($conditions, $field, $incr=1)
 decrField ($conditions, $field, $decr=1)
 create (&$row, $saveLinks=true)
 createRowset (&$rowset, $saveLinks=true)
 remove (&$row)
 removeByPkv ($pkv)
 removeByConditions ($conditions)
 removeByPkvs ($pkvs)
 removeAll ()
 removeAllWithLinks ()
 enableLinks ($links=null)
 enableLink ($linkName)
 disableLinks ($links=null)
 disableLink ($linkName)
 clearLinks ()
 relink ()
getLink ($linkName)
getLinkTable ($linkName)
existsLink ($name)
 createLink ($defines, $type)
 removeLink ($linkName)
 checkRowData (&$row, $skip=0)
 getLastValidation ($info=null)
 newInsertId ()
 execute ($sql, $inputarr=false)
 qinto ($sql, $params=null)
 parseWhere ($where, $args=null)
 _parseWhereArray ($where)
 _parseWhereString ($where, $args=null)
 _parseWhereQfield ($matches)
 qstr ($value)
 qfield ($fieldName, $tableName=null)
 qfields ($fieldsName, $tableName=null, $returnArray=false)
 getWhere ($conditions, $queryLinks=true)
 flushMeta ()
 _setUpdatedTimeFields (&$row)
 _setCreatedTimeFields (&$row)
 _prepareMeta ($flushCache=false)
 _beforeCreate (&$row)
 _beforeCreateDb (&$row)
 _afterCreateDb (&$row)
 _beforeUpdate (&$row)
 _beforeUpdateDb (&$row)
 _afterUpdateDb (&$row)
 _beforeRemove (&$row)
 _afterRemoveDb ($row)
 _beforeRemoveDbByPkv ($pkv)
 _afterRemoveDbByPkv ($pkv)
 _updateCounterCache (&$row)

公有属性

 $schema = ''
 $tableName = null
 $fullTableName = null
 $primaryKey = null
 $hasOne = null
 $belongsTo = null
 $hasMany = null
 $manyToMany = null
 $meta = null
 $fields = null
 $autoValidating = false
 $verifier = null
 $validateRules = null
 $createdTimeFields = array('CREATED', 'CREATED_ON', 'CREATED_AT')
 $updatedTimeFields = array('UPDATED', 'UPDATED_ON', 'UPDATED_AT')
 $autoLink = true
 $dbo = null
 $links = array()
 $qtableName
 $qpk
 $pka
 $qpka
 $lastValidationResult


详细描述

在文件TableDataGateway.php59行定义。


成员函数文档

FLEA_Db_TableDataGateway::FLEA_Db_TableDataGateway ( params = null  ) 

构造 FLEA_Db_TableDataGateway 实例

$params 参数允许有下列选项:

参数:
array $params
返回:
FLEA_Db_TableDataGateway

在文件TableDataGateway.php263行定义。

参考 $dboFLEA::getAppInf()FLEA::getDBO()FLEA::getSingleton()relink()setDBO().

FLEA_Db_TableDataGateway::setDBO ( &$  dbo  ) 

设置数据库访问对象

参数:
FLEA_Db_Driver_Abstract $dbo
返回:
boolean

在文件TableDataGateway.php321行定义。

参考 $dbo$pka$qpk_prepareMeta().

参考自 FLEA_Db_TableDataGateway().

& FLEA_Db_TableDataGateway::getDBO (  ) 

返回该表数据入口对象使用的数据访问对象

返回:
FLEA_Db_Driver_Abstract

在文件TableDataGateway.php383行定义。

& FLEA_Db_TableDataGateway::find ( conditions,
sort = null,
fields = '*',
queryLinks = true 
)

返回符合条件的第一条记录及所有关联的数据,查询没有结果返回 false

参数:
mixed $conditions
string $sort
mixed $fields
mixed $queryLinks
返回:
array

在文件TableDataGateway.php398行定义。

参考 $fieldsfindAll().

参考自 findByField()removeByPkv().

& FLEA_Db_TableDataGateway::findAll ( conditions = null,
sort = null,
limit = null,
fields = '*',
queryLinks = true 
)

查询所有符合条件的记录及相关数据,返回一个包含多行记录的二维数组,失败时返回 false

参数:
mixed $conditions
string $sort
mixed $limit
mixed $fields
mixed $queryLinks
返回:
array

查询时同时将主键值单独提取出来, 并且准备一个以主键值为键名的二维数组用于关联数据的装配

遍历每一个关联对象,并从关联对象获取查询语句

查询获得数据后,将关联表的数据和主表数据装配在一起

在文件TableDataGateway.php421行定义。

参考 $fieldsgetWhere()qstr().

参考自 find()findAllByField()findAllByPkvs()removeByConditions().

FLEA_Db_TableDataGateway::assembleRecursionRow ( mappingName,
&$  row,
enabledLinks = null 
)

对单一记录进行递归查询,并将查询结果组装到记录中

参数:
string $mappingName
array $row
array $enabledLinks

在文件TableDataGateway.php499行定义。

参考 enableLinks()getLink()qstr().

FLEA_Db_TableDataGateway::assembleRecursionRowset ( mappingName,
&$  rowset,
enabledLinks = null 
)

对多行记录集递归查询,并将查询结果组装到记录中

参数:
string $mappingName
array $rowset
array $enabledLinks

在文件TableDataGateway.php561行定义。

参考 enableLinks()getLink()qstr().

& FLEA_Db_TableDataGateway::findByField ( field,
value,
sort = null,
fields = '*' 
)

返回具有指定字段值的第一条记录

参数:
string $field
mixed $value
string $sort
mixed $fields
返回:
array

在文件TableDataGateway.php633行定义。

参考 $fieldsfind().

参考自 FLEA_Rbac_UsersManager::changePassword()FLEA_Rbac_UsersManager::findByEmail()FLEA_Rbac_UsersManager::findByUserId()FLEA_Rbac_UsersManager::findByUsername()FLEA_Rbac_UsersManager::updatePassword()FLEA_Rbac_UsersManager::updatePasswordById()FLEA_Rbac_UsersManager::validateUser().

& FLEA_Db_TableDataGateway::findAllByField ( field,
value,
sort = null,
limit = null,
fields = '*' 
)

返回具有指定字段值的所有记录

参数:
string $field
mixed $value
string $sort
array $limit
mixed $fields
返回:
array

在文件TableDataGateway.php649行定义。

参考 $fieldsfindAll().

& FLEA_Db_TableDataGateway::findAllByPkvs ( pkvs,
conditions = null,
sort = null,
limit = null,
fields = '*',
queryLinks = true 
)

以包含主键值的数组为条件查询记录集

参数:
array $pkvs
mixed $conditions
string $sort
mixed $limit
mixed $fields
mixed $queryLinks
返回:
array

在文件TableDataGateway.php666行定义。

参考 $fieldsfindAll().

& FLEA_Db_TableDataGateway::findBySql ( sql,
limit = null 
)

直接使用 sql 语句获取记录(该方法不会处理关联数据表)

参数:
string $sql
mixed $limit
返回:
array

在文件TableDataGateway.php690行定义。

FLEA_Db_TableDataGateway::findCount ( conditions = null,
fields = null 
)

统计符合条件的记录的总数

参数:
mixed $conditions
string|array $fields
返回:
int

在文件TableDataGateway.php720行定义。

参考 $fieldsgetWhere().

参考自 FLEA_Rbac_UsersManager::existsEmail()FLEA_Rbac_UsersManager::existsUserId()FLEA_Rbac_UsersManager::existsUsername().

FLEA_Db_TableDataGateway::save ( &$  row,
saveLinks = true,
updateCounter = true 
)

保存数据到数据库

如果数据包含主键值,则 save() 会调用 update() 来更新记录,否则调用 create() 来创建记录。

参数:
array $row
boolean $saveLinks
boolean $updateCounter
返回:
boolean

在文件TableDataGateway.php743行定义。

参考 create()update().

参考自 saveRowset().

FLEA_Db_TableDataGateway::saveRowset ( &$  rowset,
saveLinks = true 
)

保存一个记录集(多行数据)

参数:
array $rowset
boolean $saveLinks
返回:
boolean

在文件TableDataGateway.php760行定义。

参考 save().

FLEA_Db_TableDataGateway::replace ( &$  row  ) 

替换一条现有记录或插入新记录,返回记录的主键值,失败返回 false

参数:
array $row
返回:
mixed

在文件TableDataGateway.php780行定义。

参考 $fields_setCreatedTimeFields().

参考自 replaceRowset().

FLEA_Db_TableDataGateway::replaceRowset ( &$  rowset  ) 

替换记录集(多行数据),返回记录集的主键字段值,失败返回 false

参数:
array $rowset
返回:
array

在文件TableDataGateway.php809行定义。

参考 replace().

FLEA_Db_TableDataGateway::update ( &$  row,
saveLinks = true 
)

更新一条现有的记录,成功返回 true,失败返回 false

该操作会引发 _beforeUpdate()、_beforeUpdateDb() 和 _afterUpdateDb() 事件。

参数:
array $row
boolean $saveLinks
返回:
boolean

在文件TableDataGateway.php835行定义。

参考 __THROW()_afterUpdateDb()_beforeUpdate()_beforeUpdateDb()_setUpdatedTimeFields()_updateCounterCache()checkRowData()getLastValidation()FLEA::loadClass().

参考自 save()updateRowset().

FLEA_Db_TableDataGateway::updateRowset ( &$  rowset,
saveLinks = true 
)

更新记录集(多行记录)

参数:
array $rowset
boolean $saveLinks
返回:
boolean

在文件TableDataGateway.php920行定义。

参考 update().

FLEA_Db_TableDataGateway::updateByConditions ( conditions,
&$  row 
)

更新符合条件的记录,成功返回更新的记录总数,失败返回 false

该操作不会引发任何事件,也不会处理关联数据。

参数:
mixed $conditions
array $$row
返回:
int|boolean

在文件TableDataGateway.php943行定义。

参考 _setUpdatedTimeFields()getWhere().

参考自 updateField().

FLEA_Db_TableDataGateway::updateField ( conditions,
field,
value 
)

更新记录的指定字段,返回更新的记录总数

该操作不会引发任何事件,也不会处理关联数据。

参数:
mixed $conditions
string $field
mixed $value
返回:
int

在文件TableDataGateway.php965行定义。

参考 updateByConditions().

FLEA_Db_TableDataGateway::incrField ( conditions,
field,
incr = 1 
)

增加符合条件的记录的指定字段的值,返回更新的记录总数

该操作不会引发任何事件,也不会处理关联数据。

参数:
mixed $conditions
string $field
int $incr
返回:
mixed

在文件TableDataGateway.php982行定义。

参考 _setUpdatedTimeFields()getWhere().

FLEA_Db_TableDataGateway::decrField ( conditions,
field,
decr = 1 
)

减小符合条件的记录的指定字段的值,返回更新的记录总数

该操作不会引发任何事件,也不会处理关联数据。

参数:
mixed $conditions
string $field
int $decr
返回:
mixed

在文件TableDataGateway.php1011行定义。

参考 _setUpdatedTimeFields()getWhere().

FLEA_Db_TableDataGateway::create ( &$  row,
saveLinks = true 
)

插入一条新记录,返回新记录的主键值

create() 操作会引发 _beforeCreate()、_beforeCreateDb() 和 _afterCreateDb() 事件。

参数:
array $row
boolean $saveLinks
返回:
mixed

在文件TableDataGateway.php1039行定义。

参考 $fields__THROW()_afterCreateDb()_beforeCreate()_beforeCreateDb()_setCreatedTimeFields()_updateCounterCache()checkRowData()getLastValidation()FLEA::loadClass()newInsertId().

参考自 createRowset()save().

FLEA_Db_TableDataGateway::createRowset ( &$  rowset,
saveLinks = true 
)

插入多行记录,返回包含所有新记录主键值的数组,如果失败则返回 false

参数:
array $rowset
boolean $saveLinks
返回:
array

在文件TableDataGateway.php1155行定义。

参考 create().

FLEA_Db_TableDataGateway::remove ( &$  row  ) 

删除记录

remove() 操作会引发 _beforeRemove()、_beforeRemoveDbByPkv()、_afterRemoveDbByPkv 和 _afterRemoveDb() 事件。

参数:
array $row
返回:
boolean

在文件TableDataGateway.php1180行定义。

参考 __THROW()_afterRemoveDb()_beforeRemove()FLEA::loadClass()removeByPkv().

FLEA_Db_TableDataGateway::removeByPkv ( pkv  ) 

根据主键值删除记录

removeByPkv() 引发 _beforeRemoveDbByPkv()_afterRemoveDbByPkv() 事件。

参数:
mixed $pkv
返回:
boolean

首先删除关联表数据,再删除主表数据

对于 HAS_ONE 和 HAS_MANY 关联,分为两种情况处理

当 $link->linkRemove 为 true 时,直接删除关联表中的关联数据 否则更新关联数据的外键值为 $link->linkRemoveFillValue

在文件TableDataGateway.php1207行定义。

参考 _afterRemoveDbByPkv()_beforeRemoveDbByPkv()_updateCounterCache()find().

参考自 remove()removeByConditions()removeByPkvs().

FLEA_Db_TableDataGateway::removeByConditions ( conditions  ) 

删除符合条件的记录

参数:
mixed $conditions
返回:
boolean

在文件TableDataGateway.php1289行定义。

参考 findAll()removeByPkv().

FLEA_Db_TableDataGateway::removeByPkvs ( pkvs  ) 

删除数组中所有主键值的记录,该操作不会处理关联

参数:
array $pkvs
返回:
boolean

在文件TableDataGateway.php1311行定义。

参考 removeByPkv().

FLEA_Db_TableDataGateway::removeAll (  ) 

删除所有记录

返回:
boolean

在文件TableDataGateway.php1328行定义。

参考 execute().

FLEA_Db_TableDataGateway::removeAllWithLinks (  ) 

删除所有记录及关联的数据

返回:
boolean

在文件TableDataGateway.php1340行定义。

FLEA_Db_TableDataGateway::enableLinks ( links = null  ) 

启用所有或多个关联

参数:
string|array $links

在文件TableDataGateway.php1387行定义。

参考 $links.

参考自 assembleRecursionRow()assembleRecursionRowset().

FLEA_Db_TableDataGateway::enableLink ( linkName  ) 

启用指定关联

参数:
string $linkName
返回:
FLEA_Db_TableLink

在文件TableDataGateway.php1413行定义。

参考 getLink().

FLEA_Db_TableDataGateway::disableLinks ( links = null  ) 

禁用所有或多个关联

参数:
string|array $links

在文件TableDataGateway.php1426行定义。

参考 $links.

FLEA_Db_TableDataGateway::disableLink ( linkName  ) 

禁用指定关联

参数:
string $linkName
返回:
FLEA_Db_TableLink

在文件TableDataGateway.php1451行定义。

参考 getLink().

FLEA_Db_TableDataGateway::clearLinks (  ) 

清除所有关联

在文件TableDataGateway.php1461行定义。

参考自 relink().

FLEA_Db_TableDataGateway::relink (  ) 

根据类定义的 $hasOne、$hasMany、$belongsTo 和 $manyToMany 成员变量重建所有关联

在文件TableDataGateway.php1469行定义。

参考 clearLinks()createLink().

参考自 FLEA_Db_TableDataGateway().

& FLEA_Db_TableDataGateway::getLink ( linkName  ) 

获取指定名字的关联

参数:
string $linkName
返回:
FLEA_Db_TableLink

在文件TableDataGateway.php1485行定义。

参考 __THROW()FLEA::loadClass().

参考自 assembleRecursionRow()assembleRecursionRowset()disableLink()enableLink()getLinkTable().

& FLEA_Db_TableDataGateway::getLinkTable ( linkName  ) 

返回指定连接对应的表数据入口对象

参数:
string $linkName
返回:
FLEA_Db_TableDataGateway

在文件TableDataGateway.php1505行定义。

参考 getLink().

& FLEA_Db_TableDataGateway::existsLink ( name  ) 

检查指定名字的关联是否存在

参数:
string $name
返回:
boolean

在文件TableDataGateway.php1519行定义。

FLEA_Db_TableDataGateway::createLink ( defines,
type 
)

建立关联,并且返回新建立的关联对象

参数:
array $defines
enum $type
返回:
FLEA_Db_TableLink

在文件TableDataGateway.php1533行定义。

参考 FLEA_Db_TableLink::createLink().

参考自 relink().

FLEA_Db_TableDataGateway::removeLink ( linkName  ) 

删除指定的关联

参数:
string $linkName

在文件TableDataGateway.php1554行定义。

FLEA_Db_TableDataGateway::checkRowData ( &$  row,
skip = 0 
)

对数据进行验证

派生类可以覆盖此方法,以便进行附加的验证。

参数:
array $row
int $skip
返回:
boolean

在文件TableDataGateway.php1572行定义。

参考自 create()update().

FLEA_Db_TableDataGateway::getLastValidation ( info = null  ) 

返回最后一次数据验证的结果

参数:
string $info
返回:
mixed

在文件TableDataGateway.php1585行定义。

参考自 create()update().

FLEA_Db_TableDataGateway::newInsertId (  ) 

返回当前数据表的下一个插入 ID

返回:
mixed

在文件TableDataGateway.php1604行定义。

参考自 create().

FLEA_Db_TableDataGateway::execute ( sql,
inputarr = false 
)

直接执行一个 sql 语句

参数:
string $sql
array $inputarr
返回:
mixed

在文件TableDataGateway.php1616行定义。

参考自 removeAll().

FLEA_Db_TableDataGateway::qinto ( sql,
params = null 
)

将 SQL 语句中的 ? 替换为相应的参数值

参数:
string $sql
array $params
返回:
string

在文件TableDataGateway.php1629行定义。

参考 __THROW()FLEA::loadClass().

参考自 _parseWhereString().

FLEA_Db_TableDataGateway::parseWhere ( where,
args = null 
)

分析查询条件和参数

模式1: where('user_id = ?', array($user_id)) where('user_id = :user_id', array('user_id' => $user_id)) where('user_id in (?)', array(array($id1, $id2, $id3)))

模式2: where(array( 'user_id' => $user_id, 'level_ix' => $level_ix, ))

参数:
array|string $where
array $args
返回:
array|string

在文件TableDataGateway.php1662行定义。

参考 _parseWhereArray()_parseWhereString().

FLEA_Db_TableDataGateway::_parseWhereArray ( where  ) 

按照模式2对查询条件进行分析

参数:
array $where
返回:
array|string

模式2: where(array('user_id' => $user_id)) where(array('user_id' => $user_id, 'level_ix' => 1)) where(array('(', 'user_id' => $user_id, 'OR', 'level_ix' => $level_ix, ')')) where(array('user_id' => array($id1, $id2, $id3)))

在文件TableDataGateway.php1681行定义。

参考 _parseWhereQfield()qstr().

参考自 parseWhere().

FLEA_Db_TableDataGateway::_parseWhereString ( where,
args = null 
)

按照模式1对查询条件进行分析

参数:
string $where
array $args
返回:
array|string

模式1: where('user_id = ?', array($user_id)) where('user_id = :user_id', array('user_id' => $user_id)) where('user_id in (?)', array(array($id1, $id2, $id3))) where('user_id = :user_id', array('user_id' => $user_id)) where('user_id IN (:users_id)', array('users_id' => array(1, 2, 3)))

在文件TableDataGateway.php1730行定义。

参考 _parseWhereQfield()qinto().

参考自 parseWhere().

FLEA_Db_TableDataGateway::_parseWhereQfield ( matches  ) 

将字段名替换为转义后的完全限定名

参数:
array $matches
返回:
string

在文件TableDataGateway.php1757行定义。

参考 $schema.

参考自 _parseWhereArray()_parseWhereString().

FLEA_Db_TableDataGateway::qstr ( value  ) 

返回转义后的数据

参数:
mixed $value
返回:
string

在文件TableDataGateway.php1785行定义。

参考自 _parseWhereArray()assembleRecursionRow()assembleRecursionRowset()findAll().

FLEA_Db_TableDataGateway::qfield ( fieldName,
tableName = null 
)

获得一个字段名的完全限定名

参数:
string $fieldName
string $tableName
返回:
string

在文件TableDataGateway.php1798行定义。

参考 $tableName.

FLEA_Db_TableDataGateway::qfields ( fieldsName,
tableName = null,
returnArray = false 
)

获得多个字段名的完全限定名

参数:
string|array $fieldsName
string $tableName
boolean $returnArray
返回:
string

在文件TableDataGateway.php1815行定义。

参考 $tableName.

FLEA_Db_TableDataGateway::getWhere ( conditions,
queryLinks = true 
)

分析查询条件,返回 WHERE 子句

参数:
array $conditions
boolean $queryLinks
返回:
string

在文件TableDataGateway.php1831行定义。

参考 FLEA_Db_SqlHelper::parseConditions().

参考自 decrField()findAll()findCount()incrField()updateByConditions().

FLEA_Db_TableDataGateway::flushMeta (  ) 

强制刷新缓存的数据表 meta 信息

在文件TableDataGateway.php1912行定义。

参考 _prepareMeta().

FLEA_Db_TableDataGateway::_setUpdatedTimeFields ( &$  row  ) 

更新记录的 updated 等字段

参数:
array $row

在文件TableDataGateway.php1922行定义。

参考自 decrField()incrField()update()updateByConditions().