
公有成员 | |
| 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.php第59行定义。
| FLEA_Db_TableDataGateway::FLEA_Db_TableDataGateway | ( | $ | params = null |
) |
构造 FLEA_Db_TableDataGateway 实例
$params 参数允许有下列选项:
| array | $params |
在文件TableDataGateway.php第263行定义。
参考 $dbo、FLEA::getAppInf()、FLEA::getDBO()、FLEA::getSingleton()、relink()及setDBO().
| FLEA_Db_TableDataGateway::setDBO | ( | &$ | dbo | ) |
设置数据库访问对象
| FLEA_Db_Driver_Abstract | $dbo |
在文件TableDataGateway.php第321行定义。
参考 $dbo、$pka、$qpk及_prepareMeta().
| & FLEA_Db_TableDataGateway::getDBO | ( | ) |
| & FLEA_Db_TableDataGateway::find | ( | $ | conditions, | |
| $ | sort = null, |
|||
| $ | fields = '*', |
|||
| $ | queryLinks = true | |||
| ) |
返回符合条件的第一条记录及所有关联的数据,查询没有结果返回 false
| mixed | $conditions | |
| string | $sort | |
| mixed | $fields | |
| mixed | $queryLinks |
在文件TableDataGateway.php第398行定义。
| & FLEA_Db_TableDataGateway::findAll | ( | $ | conditions = null, |
|
| $ | sort = null, |
|||
| $ | limit = null, |
|||
| $ | fields = '*', |
|||
| $ | queryLinks = true | |||
| ) |
查询所有符合条件的记录及相关数据,返回一个包含多行记录的二维数组,失败时返回 false
| mixed | $conditions | |
| string | $sort | |
| mixed | $limit | |
| mixed | $fields | |
| mixed | $queryLinks |
查询时同时将主键值单独提取出来, 并且准备一个以主键值为键名的二维数组用于关联数据的装配
遍历每一个关联对象,并从关联对象获取查询语句
查询获得数据后,将关联表的数据和主表数据装配在一起
在文件TableDataGateway.php第421行定义。
参考 $fields、getWhere()及qstr().
参考自 find()、findAllByField()、findAllByPkvs()及removeByConditions().
| FLEA_Db_TableDataGateway::assembleRecursionRow | ( | $ | mappingName, | |
| &$ | row, | |||
| $ | enabledLinks = null | |||
| ) |
对单一记录进行递归查询,并将查询结果组装到记录中
| string | $mappingName | |
| array | $row | |
| array | $enabledLinks |
在文件TableDataGateway.php第499行定义。
| FLEA_Db_TableDataGateway::assembleRecursionRowset | ( | $ | mappingName, | |
| &$ | rowset, | |||
| $ | enabledLinks = null | |||
| ) |
对多行记录集递归查询,并将查询结果组装到记录中
| string | $mappingName | |
| array | $rowset | |
| array | $enabledLinks |
在文件TableDataGateway.php第561行定义。
| & FLEA_Db_TableDataGateway::findByField | ( | $ | field, | |
| $ | value, | |||
| $ | sort = null, |
|||
| $ | fields = '*' | |||
| ) |
返回具有指定字段值的第一条记录
| string | $field | |
| mixed | $value | |
| string | $sort | |
| mixed | $fields |
在文件TableDataGateway.php第633行定义。
参考自 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 |
在文件TableDataGateway.php第649行定义。
| & 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 |
在文件TableDataGateway.php第666行定义。
| & FLEA_Db_TableDataGateway::findBySql | ( | $ | sql, | |
| $ | limit = null | |||
| ) |
| FLEA_Db_TableDataGateway::findCount | ( | $ | conditions = null, |
|
| $ | fields = null | |||
| ) |
统计符合条件的记录的总数
| mixed | $conditions | |
| string|array | $fields |
在文件TableDataGateway.php第720行定义。
参考 $fields及getWhere().
参考自 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 |
在文件TableDataGateway.php第743行定义。
参考自 saveRowset().
| FLEA_Db_TableDataGateway::saveRowset | ( | &$ | rowset, | |
| $ | saveLinks = true | |||
| ) |
保存一个记录集(多行数据)
| array | $rowset | |
| boolean | $saveLinks |
在文件TableDataGateway.php第760行定义。
参考 save().
| FLEA_Db_TableDataGateway::replace | ( | &$ | row | ) |
替换一条现有记录或插入新记录,返回记录的主键值,失败返回 false
| array | $row |
在文件TableDataGateway.php第780行定义。
参考 $fields及_setCreatedTimeFields().
参考自 replaceRowset().
| FLEA_Db_TableDataGateway::replaceRowset | ( | &$ | rowset | ) |
替换记录集(多行数据),返回记录集的主键字段值,失败返回 false
| array | $rowset |
在文件TableDataGateway.php第809行定义。
参考 replace().
| FLEA_Db_TableDataGateway::update | ( | &$ | row, | |
| $ | saveLinks = true | |||
| ) |
更新一条现有的记录,成功返回 true,失败返回 false
该操作会引发 _beforeUpdate()、_beforeUpdateDb() 和 _afterUpdateDb() 事件。
| array | $row | |
| boolean | $saveLinks |
在文件TableDataGateway.php第835行定义。
参考 __THROW()、_afterUpdateDb()、_beforeUpdate()、_beforeUpdateDb()、_setUpdatedTimeFields()、_updateCounterCache()、checkRowData()、getLastValidation()及FLEA::loadClass().
参考自 save()及updateRowset().
| FLEA_Db_TableDataGateway::updateRowset | ( | &$ | rowset, | |
| $ | saveLinks = true | |||
| ) |
更新记录集(多行记录)
| array | $rowset | |
| boolean | $saveLinks |
在文件TableDataGateway.php第920行定义。
参考 update().
| FLEA_Db_TableDataGateway::updateByConditions | ( | $ | conditions, | |
| &$ | row | |||
| ) |
更新符合条件的记录,成功返回更新的记录总数,失败返回 false
该操作不会引发任何事件,也不会处理关联数据。
| mixed | $conditions | |
| array | $$row |
在文件TableDataGateway.php第943行定义。
参考 _setUpdatedTimeFields()及getWhere().
参考自 updateField().
| FLEA_Db_TableDataGateway::updateField | ( | $ | conditions, | |
| $ | field, | |||
| $ | value | |||
| ) |
更新记录的指定字段,返回更新的记录总数
该操作不会引发任何事件,也不会处理关联数据。
| mixed | $conditions | |
| string | $field | |
| mixed | $value |
在文件TableDataGateway.php第965行定义。
| FLEA_Db_TableDataGateway::incrField | ( | $ | conditions, | |
| $ | field, | |||
| $ | incr = 1 | |||
| ) |
增加符合条件的记录的指定字段的值,返回更新的记录总数
该操作不会引发任何事件,也不会处理关联数据。
| mixed | $conditions | |
| string | $field | |
| int | $incr |
在文件TableDataGateway.php第982行定义。
| FLEA_Db_TableDataGateway::decrField | ( | $ | conditions, | |
| $ | field, | |||
| $ | decr = 1 | |||
| ) |
减小符合条件的记录的指定字段的值,返回更新的记录总数
该操作不会引发任何事件,也不会处理关联数据。
| mixed | $conditions | |
| string | $field | |
| int | $decr |
在文件TableDataGateway.php第1011行定义。
| FLEA_Db_TableDataGateway::create | ( | &$ | row, | |
| $ | saveLinks = true | |||
| ) |
插入一条新记录,返回新记录的主键值
create() 操作会引发 _beforeCreate()、_beforeCreateDb() 和 _afterCreateDb() 事件。
| array | $row | |
| boolean | $saveLinks |
在文件TableDataGateway.php第1039行定义。
参考 $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 |
在文件TableDataGateway.php第1155行定义。
参考 create().
| FLEA_Db_TableDataGateway::remove | ( | &$ | row | ) |
删除记录
remove() 操作会引发 _beforeRemove()、_beforeRemoveDbByPkv()、_afterRemoveDbByPkv 和 _afterRemoveDb() 事件。
| array | $row |
在文件TableDataGateway.php第1180行定义。
参考 __THROW()、_afterRemoveDb()、_beforeRemove()、FLEA::loadClass()及removeByPkv().
| FLEA_Db_TableDataGateway::removeByPkv | ( | $ | pkv | ) |
根据主键值删除记录
removeByPkv() 引发 _beforeRemoveDbByPkv() 和 _afterRemoveDbByPkv() 事件。
| mixed | $pkv |
首先删除关联表数据,再删除主表数据
对于 HAS_ONE 和 HAS_MANY 关联,分为两种情况处理
当 $link->linkRemove 为 true 时,直接删除关联表中的关联数据 否则更新关联数据的外键值为 $link->linkRemoveFillValue
在文件TableDataGateway.php第1207行定义。
参考 _afterRemoveDbByPkv()、_beforeRemoveDbByPkv()、_updateCounterCache()及find().
| FLEA_Db_TableDataGateway::removeByConditions | ( | $ | conditions | ) |
| FLEA_Db_TableDataGateway::removeByPkvs | ( | $ | pkvs | ) |
删除数组中所有主键值的记录,该操作不会处理关联
| array | $pkvs |
在文件TableDataGateway.php第1311行定义。
参考 removeByPkv().
| FLEA_Db_TableDataGateway::removeAll | ( | ) |
| FLEA_Db_TableDataGateway::removeAllWithLinks | ( | ) |
| FLEA_Db_TableDataGateway::enableLinks | ( | $ | links = null |
) |
| FLEA_Db_TableDataGateway::enableLink | ( | $ | linkName | ) |
| FLEA_Db_TableDataGateway::disableLinks | ( | $ | links = null |
) |
| FLEA_Db_TableDataGateway::disableLink | ( | $ | linkName | ) |
| FLEA_Db_TableDataGateway::clearLinks | ( | ) |
| FLEA_Db_TableDataGateway::relink | ( | ) |
根据类定义的 $hasOne、$hasMany、$belongsTo 和 $manyToMany 成员变量重建所有关联
在文件TableDataGateway.php第1469行定义。
| & FLEA_Db_TableDataGateway::getLink | ( | $ | linkName | ) |
获取指定名字的关联
| string | $linkName |
在文件TableDataGateway.php第1485行定义。
参考 __THROW()及FLEA::loadClass().
参考自 assembleRecursionRow()、assembleRecursionRowset()、disableLink()、enableLink()及getLinkTable().
| & FLEA_Db_TableDataGateway::getLinkTable | ( | $ | linkName | ) |
| & FLEA_Db_TableDataGateway::existsLink | ( | $ | name | ) |
| FLEA_Db_TableDataGateway::createLink | ( | $ | defines, | |
| $ | type | |||
| ) |
建立关联,并且返回新建立的关联对象
| array | $defines | |
| enum | $type |
在文件TableDataGateway.php第1533行定义。
参考 FLEA_Db_TableLink::createLink().
参考自 relink().
| FLEA_Db_TableDataGateway::removeLink | ( | $ | linkName | ) |
| FLEA_Db_TableDataGateway::checkRowData | ( | &$ | row, | |
| $ | skip = 0 | |||
| ) |
| FLEA_Db_TableDataGateway::getLastValidation | ( | $ | info = null |
) |
| FLEA_Db_TableDataGateway::newInsertId | ( | ) |
| FLEA_Db_TableDataGateway::execute | ( | $ | sql, | |
| $ | inputarr = false | |||
| ) |
直接执行一个 sql 语句
| string | $sql | |
| array | $inputarr |
在文件TableDataGateway.php第1616行定义。
参考自 removeAll().
| FLEA_Db_TableDataGateway::qinto | ( | $ | sql, | |
| $ | params = null | |||
| ) |
将 SQL 语句中的 ? 替换为相应的参数值
| string | $sql | |
| array | $params |
在文件TableDataGateway.php第1629行定义。
参考 __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 |
在文件TableDataGateway.php第1662行定义。
| FLEA_Db_TableDataGateway::_parseWhereArray | ( | $ | where | ) |
按照模式2对查询条件进行分析
| array | $where |
模式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.php第1681行定义。
参考 _parseWhereQfield()及qstr().
参考自 parseWhere().
| FLEA_Db_TableDataGateway::_parseWhereString | ( | $ | where, | |
| $ | args = null | |||
| ) |
按照模式1对查询条件进行分析
| string | $where | |
| array | $args |
模式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.php第1730行定义。
参考 _parseWhereQfield()及qinto().
参考自 parseWhere().
| FLEA_Db_TableDataGateway::_parseWhereQfield | ( | $ | matches | ) |
| FLEA_Db_TableDataGateway::qstr | ( | $ | value | ) |
返回转义后的数据
| mixed | $value |
在文件TableDataGateway.php第1785行定义。
参考自 _parseWhereArray()、assembleRecursionRow()、assembleRecursionRowset()及findAll().
| FLEA_Db_TableDataGateway::qfield | ( | $ | fieldName, | |
| $ | tableName = null | |||
| ) |
获得一个字段名的完全限定名
| string | $fieldName | |
| string | $tableName |
在文件TableDataGateway.php第1798行定义。
参考 $tableName.
| FLEA_Db_TableDataGateway::qfields | ( | $ | fieldsName, | |
| $ | tableName = null, |
|||
| $ | returnArray = false | |||
| ) |
获得多个字段名的完全限定名
| string|array | $fieldsName | |
| string | $tableName | |
| boolean | $returnArray |
在文件TableDataGateway.php第1815行定义。
参考 $tableName.
| FLEA_Db_TableDataGateway::getWhere | ( | $ | conditions, | |
| $ | queryLinks = true | |||
| ) |
分析查询条件,返回 WHERE 子句
| array | $conditions | |
| boolean | $queryLinks |
在文件TableDataGateway.php第1831行定义。
参考 FLEA_Db_SqlHelper::parseConditions().
参考自 decrField()、findAll()、findCount()、incrField()及updateByConditions().
| FLEA_Db_TableDataGateway::flushMeta | ( | ) |
| FLEA_Db_TableDataGateway::_setUpdatedTimeFields | ( | &$ | row | ) |