Nested
继承自 Table支持修改后的先序遍历树行为的 Table 类。
自 |
1.7.0 |
---|---|
包 |
Joomla CMS |
方法
__construct
对象构造函数用于设置表格和键字段。在大多数情况下,子类会覆盖此方法以明确为特定数据库表格设置表格和键字段。
__construct( table, key, \Joomla\Database\DatabaseDriver db, \Joomla\Event\DispatcherInterface dispatcher = null) :
自 |
1.7.0 |
---|
参数
- table
string
要建模的表格名称。- key
mixed
表格中主键字段的名称或组成主键的字段名称数组。- db
DatabaseDriver
DatabaseDriver 对象。- dispatcher
DispatcherInterface
此表格的事件调度器
响应
mixed
_getAssetName
计算资源默认名称的方法。
_getAssetName() :
默认名称的形式为 table_name.id,其中 id 是表格主键的值。
自 |
1.7.0 |
---|
响应
string
_getAssetParentId
获取要在此资源下注册的父资源的方法。
_getAssetParentId(\Joomla\CMS\Table\Table table = null, id = null) :
默认情况下,所有资源都注册到具有 ID 的 ROOT 节点,如果不存在,则默认值为 1。扩展类可以定义一个表格和 ID 进行查找。如果资源不存在,它将被创建。
自 |
1.7.0 |
---|
参数
- table
Table
资源父级的 Table 对象。- id
int
要查找的 ID。
响应
int
_getAssetTitle
用于返回资源表格标题的方法。
_getAssetTitle() :
在跟踪资源时,为每个资源保留一个标题,以便在统一的访问管理器中提供一些上下文。通常,这只会返回 $this->title 或 $this->name 或用于行主要名称的任何内容。如果此方法未被覆盖,则使用资源名称。
自 |
1.7.0 |
---|
响应
string
用作资源表格标题的字符串。
_getNode
用于获取树中节点的嵌套集属性的方法。
_getNode( id, key = null) :
自 |
1.7.0 |
---|---|
抛出 |
|
参数
- id
int
要通过其查找节点的值。- key
string
要通过其查找节点的可选键(parent | left | right)。如果省略,则使用表格的主键。
响应
mixed
失败时为布尔值 false,成功时为节点对象。
_getTreeRepositionData
用于获取在树中某个位置为节点及其子节点腾出空间所需的各种数据的方法。返回的数据对象包括用于更新 left 和 right id 值以腾出空间的 SQL WHERE 子句的条件,以及节点的新 left 和 right id。
_getTreeRepositionData( referenceNode, nodeWidth, position = 'before') :
自 |
1.7.0 |
---|
参数
- referenceNode
object
一个节点对象,至少包含一个 'lft' 和 'rgt',在树中为新节点腾出空间。- nodeWidth
int
要在树中为其腾出空间的节点的宽度。- position
string
相对于引用节点的位置,应在其中腾出空间。
响应
mixed
失败时为布尔值 false,成功时为数据对象。
_lock
用于锁定数据库表格以进行写入的方法。
_lock() :
自 |
1.7.0 |
---|---|
抛出 |
|
响应
bool
成功时为 True。
_logtable
用于在缓冲区中创建一个日志表格的方法,可以选择显示查询和/或数据。
_logtable( showData = true, showQuery = true) :
自 |
1.7.0 |
---|
参数
- showData
bool
要显示数据,则为 True- showQuery
bool
要显示查询,则为 True
响应
void
_runQuery
运行查询并在错误时解锁数据库。
_runQuery( query, errorMessage) :
注意 |
自 3.0.0 起,此方法返回 void,并将重新抛出数据库异常。 |
---|---|
自 |
1.7.0 |
抛出 |
|
参数
- query
mixed
一个字符串或 DatabaseQuery 对象。- errorMessage
string
未使用。
响应
void
_unlock
用于解锁数据库表格以进行写入的方法。
_unlock() :
自 |
1.7.0 |
---|
响应
bool
成功时为 True。
addIncludePath
添加 Table 应该在其中搜索表格类文件的系统文件路径。
addIncludePath(array|string path = null) : mixed||string|int
自 |
1.7.0 |
---|---|
弃用 |
4.3 将在 6.0 中删除 不应再使用,因为表格是通过 MvcFactory 加载的 |
参数
- path
array<string|int, mixed>|string
要添加的系统文件路径或系统文件路径数组。
响应
array<string|int, mixed>
要从中查找 Table 类的系统文件路径数组。
appendPrimaryKeys
用于将此表格的主键追加到查询的方法。
appendPrimaryKeys(\Joomla\Database\DatabaseQuery query, pk = null) :
自 |
3.1.4 |
---|
参数
- query
DatabaseQuery
要追加的查询对象。- pk
mixed
可选主键参数。
响应
void
bind
用于将关联数组或对象绑定到 Table 实例的方法。此方法仅绑定公开可访问的属性,并可以选择传入要忽略的属性数组,以防在绑定时将其忽略。
bind(array|object src, array|string ignore = []) :
自 |
1.7.0 |
---|---|
抛出 |
|
参数
- src
array<string|int, mixed>|object
要绑定到 Table 实例的关联数组或对象。- ignore
array<string|int, mixed>|string
绑定时要忽略的属性的可选数组或以空格分隔的列表。
响应
bool
成功时为 True。
check
检查对象是否有效且可以存储。
check() :
此方法检查 parent_id 是否非零且存在于数据库中。请注意,根节点 (parent_id = 0) 无法使用此类进行操作。
自 |
1.7.0 |
---|
响应
bool
如果所有检查都通过,则为 True。
checkIn
用于检查行是否存在的必要属性/字段的方法。
checkIn( pk = null) :
检查行是否存在将允许其他用户编辑该行。
自 |
1.7.0 |
---|---|
抛出 |
|
参数
- pk
mixed
要签出的可选主键值。如果未设置,则使用实例属性值。
响应
bool
成功时为 True。
checkOut
用于在存在必要的属性/字段的情况下签出行的方法。
checkOut( userId, pk = null) :
为了防止在数据库中编辑行时出现竞争条件,如果存在字段 'checked_out' 和 'checked_out_time',则可以签出行。在签出行时,除签出行用户以外的任何用户尝试存储该行的任何尝试都应保留,直到该行再次签入为止。
自 |
1.7.0 |
---|---|
抛出 |
|
参数
- userId
int
签出该行的用户 ID。- pk
mixed
要签出的可选主键值。如果未设置,则使用实例属性值。
响应
bool
成功时为 True。
debug
打开或关闭调试级别
debug( level) :
自 |
1.7.0 |
---|
参数
- level
int
0 = 关闭,1 = 打开
响应
void
def
如果尚未分配,则设置默认值
def( property, default = null) :
自 |
1.7.0 |
---|---|
弃用 |
4.3.0 将在 6.0 中删除 不应再使用定义动态属性 |
参数
- property
string
属性的名称。- default
mixed
默认值。
响应
mixed
delete
用于从表格中删除节点以及可选地删除其子节点的方法。
delete( pk = null, children = true) :
自 |
1.7.0 |
---|
参数
- pk
int
要删除的节点的主键。- children
bool
要删除子节点,则为 True,要将子节点向上移动一个级别,则为 False。
响应
bool
成功时为 True。
get
返回对象的属性,如果未设置属性,则返回默认值。
get( property, default = null) :
自 |
1.7.0 |
---|---|
参见 | CMSObject::getProperties() |
弃用 |
4.3.0 将在 6.0 中删除 为属性创建适当的 getter 函数 |
参数
- property
string
属性的名称。- default
mixed
默认值。
响应
mixed
属性的值。
getColumnAlias
用于返回“特殊”列(如排序、点击次数、已发布等)的真实名称的方法。这样,您就可以自由遵循数据库命名约定并使用内置的 \Joomla 函数。
getColumnAlias( column) :
自 |
3.4 |
---|
参数
- column
string
“特殊”列的名称(例如排序、点击次数)。
响应
string
标识特殊的字符串
getDbo
用于获取 DatabaseDriver 对象的方法。
getDbo() : \Joomla\Database\DatabaseDriver
自 |
1.7.0 |
---|
响应
DatabaseDriver
内部数据库驱动程序对象。
getError
获取最新的错误消息。
getError( i = null, toString = true) :
自 |
1.7.0 |
---|---|
弃用 |
3.1.4 将在 6.0 中删除 将被删除,无替换,改为捕获抛出的异常,而不是 getError |
参数
- i
int
可选错误索引。- toString
bool
指示 Exception 对象是否应返回其错误消息。
响应
string
错误消息
getErrors
返回所有错误(如果有)。
getErrors() : mixed||string|int
自 |
1.7.0 |
---|---|
弃用 |
3.1.4 将在 6.0 中移除 将被移除且无替换 使用捕获异常代替 getErrors |
响应
array<string|int, mixed>
错误消息数组。
getFields
从数据库表中获取列。
getFields( reload = false) :
自 |
1.7.0 |
---|---|
抛出 |
|
参数
- 重新加载
bool
重新加载缓存的标志
响应
mixed
字段名称数组,如果发生错误则为 false。
getId
返回此记录的标识(主键)值
getId() :
自 |
4.0.0 |
---|
响应
mixed
getInstance
静态方法,用于获取 Table 类的实例,如果它可以在表包含路径中找到。
getInstance( type, prefix = 'JTable', mixed||string|int config = []) : \Joomla\CMS\Table\Table|bool
要添加用于搜索 Table 类的包含路径,请参见 Table::addIncludePath()。
自 |
1.7.0 |
---|---|
弃用 |
4.3 将在 6.0 中移除 使用 MvcFactory 代替 例如:Factory::getApplication()->bootComponent('...')->getMVCFactory()->createTable($name, $prefix, $config); |
参数
- 类型
string
要获取实例的 Table 类的类型(名称)。- 前缀
string
Table 类名称的可选前缀。- 配置
array<string|int, mixed>
Table 对象的可选配置值数组。
响应
Table|bool
找到的 Table 对象,或失败时的布尔值 false。
getKeyName
获取表的主键字段名称的方法。
getKeyName( multiple = false) :
自 |
1.7.0 |
---|
参数
- 多个
bool
如果要返回所有主键(作为数组),则为 true;如果要返回第一个主键(作为字符串),则为 false。
响应
mixed
主键字段名称数组或包含第一个主键字段的字符串。
getNextOrder
获取由 SQL WHERE 子句定义的一组行的下一个排序值的方法。
getNextOrder( where = '') :
这对于将新项目放在表中一组项目的最后位置很有用。
自 |
1.7.0 |
---|---|
抛出 |
|
参数
- 哪里
string
用于选择表的 MAX(ordering) 的 WHERE 子句。
响应
int
下一个排序值。
getPath
从给定节点到其根节点获取节点数组的方法。
getPath( pk = null, diagnostic = false) :
自 |
1.7.0 |
---|---|
抛出 |
|
参数
- pk
int
要获取路径的节点的主键。- 诊断
bool
仅选择嵌套集的诊断数据。
响应
mixed
包含起始节点的节点对象数组。
getPrimaryKey
使用传入的值作为默认值获取此表的主键值。
getPrimaryKey(mixed||string|int keys = []) : mixed||string|int
自 |
3.1.4 |
---|
参数
- 键
array<string|int, mixed>
可选的主键值。
响应
array<string|int, mixed>
主键名称和值的数组。
getProperties
返回对象属性的关联数组。
getProperties( public = true) : mixed||string|int
自 |
1.7.0 |
---|---|
参见 | CMSObject::get() |
弃用 |
4.3.0 将在 6.0 中删除 为属性创建适当的 getter 函数 |
参数
- 公共
bool
如果为 true,则仅返回公共属性。
响应
array<string|int, mixed>
getRootId
获取树中根项的 ID
getRootId() :
自 |
1.7.0 |
---|
响应
mixed
根行的主键 ID,如果未找到且内部错误已设置,则为 false。
getTableName
获取类对应的数据库表名称的方法。
getTableName() :
自 |
1.7.0 |
---|
响应
string
正在建模的数据库表的名称。
getTree
获取节点及其所有子节点的方法。
getTree( pk = null, diagnostic = false) :
自 |
1.7.0 |
---|---|
抛出 |
|
参数
- pk
int
要获取树的节点的主键。- 诊断
bool
仅选择嵌套集的诊断数据。
响应
mixed
失败时为布尔值 false,成功时为节点对象数组。
hasField
检查记录是否具有属性(如果存在,则应用列别名)
hasField( key) :
自 |
3.9.11 |
---|
参数
- key
string
要检查的键
响应
bool
hasPrimaryKey
验证主键是否已设置。
hasPrimaryKey() :
自 |
3.1.4 |
---|
响应
bool
如果主键已设置,则为 true。
hit
如果存在必要的属性/字段,则递增行点击次数的方法。
hit( pk = null) :
自 |
1.7.0 |
---|---|
抛出 |
|
参数
- pk
mixed
可选的主键值,用于递增。如果未设置,则使用实例属性值。
响应
bool
成功时为 True。
isCheckedOut
确定行是否被检出,因此用户无法编辑的方法。
isCheckedOut( with, against = null) :
如果行被同一用户检出,则被视为未检出 - 因为用户仍然可以编辑它。
自 |
1.7.0 |
---|
参数
- 与
int
要执行匹配的用户 ID,如果项目被此用户检出,则函数将返回 false。- 针对
int
当函数用作静态函数时,要执行匹配的用户 ID。
响应
bool
如果已检出,则为 true。
isLeaf
确定节点是否为树中的叶节点(没有子节点)的方法。
isLeaf( pk = null) :
注意 |
自 3.0.0 起,如果节点不存在,则此方法返回 null。 |
---|---|
自 |
1.7.0 |
抛出 |
|
参数
- pk
int
要检查的节点的主键。
响应
bool
如果为叶节点,则为 true;如果为非叶节点,则为 false;如果节点不存在,则为 null。
load
通过主键从数据库加载行并将字段绑定到 Table 实例属性的方法。
load( keys = null, reset = true) :
自 |
1.7.0 |
---|---|
抛出 |
|
参数
- 键
mixed
可选的主键值,用于加载行,或要匹配的字段数组。如果未设置,则使用实例属性值。- reset
bool
如果在加载新行之前重置默认值,则为 true。
响应
bool
如果成功,则为 true。如果未找到行,则为 false。
move
在由 SQL WHERE 子句定义的一组行的排序顺序中移动行的方法。
move( delta, where = '') :
负数将行向上移动,正数将行向下移动。
自 |
1.7.0 |
---|
参数
- 增量
int
在排序顺序中移动行的方向和幅度。- 哪里
string
WHERE 子句,用于限制选择行以压缩排序值。
响应
mixed
成功时的布尔值 true。
moveByReference
将节点及其子节点移动到树中新位置的方法。
moveByReference( referenceId, position = 'after', pk = null, recursiveUpdate = true) :
自 |
1.7.0 |
---|---|
抛出 |
|
参数
- 参考ID
int
用于引用新位置的节点的主键。- position
string
位置类型字符串。['before', 'after', 'first-child', 'last-child']- pk
int
要移动的节点的主键。- 递归更新
bool
标志指示应调用方法 recursiveUpdatePublishedColumn。
响应
bool
成功时为 True。
orderDown
将节点在同一级别上向右移动一个位置的方法。
orderDown( pk) :
自 |
1.7.0 |
---|---|
抛出 |
|
参数
- pk
int
要移动的节点的主键。
响应
bool
成功时为 True。
orderUp
将节点在同一级别上向左移动一个位置的方法。
orderUp( pk) :
自 |
1.7.0 |
---|---|
抛出 |
|
参数
- pk
int
要移动的节点的主键。
响应
bool
成功时为 True。
publish
为数据库表中的节点或节点列表设置发布状态的方法。该方法尊重其他用户检出的行,并在进行调整后尝试检入它可以检入的行。该方法不允许您将发布状态设置得高于任何祖先节点,也不允许您将发布状态设置在具有检出子节点的节点上。
publish( pks = null, state = 1, userId) :
自 |
1.7.0 |
---|---|
抛出 |
|
参数
- pks
mixed
要更新的可选主键值数组。如果未设置,则使用实例属性值。- 状态
int
发布状态。例如 [0 = 未发布,1 = 已发布]- userId
int
执行操作的用户 ID。
响应
bool
成功时为 True。
rebuild
递归重建整个嵌套集树的方法。
rebuild( parentId = null, leftId, level, path = '') :
自 |
1.7.0 |
---|---|
抛出 |
|
参数
- 父ID
int
要重建的树的根节点。- 左ID
int
在构建树时要使用的左侧 ID。- level
int
要分配给当前节点的级别。- path
string
当前节点的路径。
响应
int
成功时的根 rgt 值 + 1,失败时的 false
rebuildPath
从当前节点到树的根节点重建节点路径字段的方法,使用节点的别名值。
rebuildPath( pk = null) :
自 |
1.7.0 |
---|
参数
- pk
int
要获取路径的节点的主键。
响应
bool
成功时为 True。
recursiveUpdatePublishedColumn
递归更新子行的 published 列的方法。
recursiveUpdatePublishedColumn( pk, newState = null) :
自 |
3.7.0 |
---|---|
抛出 |
|
参数
- pk
int
已更改 published 列的行的 ID 号。- 新状态
int
由 $pk 标识的行的 published 列的可选值。
响应
bool
成功时为 True。
reorder
压缩由 SQL WHERE 子句定义的一组行的排序值的方法。
reorder(string|string[] where = '') :
自 |
1.7.0 |
---|---|
抛出 |
|
参数
- 哪里
string|array<string|int, string>
WHERE 子句,用于限制选择行以压缩排序值。
响应
mixed
成功时的布尔值 True。
reset
将类属性重置为类定义中设置的默认值的方法。它将忽略主键以及任何私有类属性(除了 $_errors)。
reset() :
自 |
3.2.1 |
---|
响应
void
save
提供将 Table 实例绑定、检查和存储到数据库表的一种快捷方式的方法。
save(array|object src, orderingFilter = '', array|string ignore = '') :
该方法将在数据存储后检查一次行,如果存在排序过滤器,则会尝试根据过滤器重新排序表行。排序过滤器是一个实例属性名称。将重新排序的行是其值与 Table 实例匹配的属性指定的那些行。
自 |
1.7.0 |
---|
参数
- src
array<string|int, mixed>|object
要绑定到 Table 实例的关联数组或对象。- 排序过滤器
string
用于顺序更新的过滤器- ignore
array<string|int, mixed>|string
绑定时要忽略的属性的可选数组或以空格分隔的列表。
响应
bool
成功时为 True。
saveorder
更新表行顺序的方法
saveorder(mixed||string|int idArray = null, mixed||string|int lftArray = null) : int|bool
自 |
1.7.0 |
---|---|
抛出 |
|
参数
- id数组
array<string|int, mixed>
要重新排序的行的 ID 号。- lft数组
array<string|int, mixed>
要重新排序的行的 lft 值。
响应
int|bool
成功时的根 rgt 值 + 1,失败时的 false。
set
修改对象属性,如果属性不存在则创建该属性。
set( property, value = null) :
自 |
1.7.0 |
---|---|
弃用 |
4.3.0 将在 6.0 中移除 为属性创建一个合适的 setter 函数 |
参数
- property
string
属性的名称。- 价值
mixed
要设置的属性的值。
响应
mixed
属性的先前值。
setColumnAlias
为“特殊”列注册列别名的方法。
setColumnAlias( column, columnAlias) :
自 |
3.4 |
---|
参数
- column
string
“特殊”列(例如排序)- 列别名
string
实际列名称(例如 foo_ordering)
响应
void
setDbo
设置 DatabaseDriver 对象的方法。
setDbo(\Joomla\Database\DatabaseDriver db) :
自 |
1.7.0 |
---|
参数
- db
DatabaseDriver
要由表对象使用的 DatabaseDriver 对象。
响应
bool
成功时为 True。
setError
添加错误消息。
setError( error) :
自 |
1.7.0 |
---|---|
弃用 |
3.1.4 将在 6.0 中移除 将被移除且无替换 使用抛出异常代替 setError |
参数
- 错误
string
错误消息。
响应
void
setLocation
在树对象中设置节点位置的方法。此方法不会将新位置保存到数据库,但会将其设置在对象中,以便在存储节点时,它将存储在新位置。
setLocation( referenceId, position = 'after') :
注意 |
自 3.0.0 起,此方法返回 void,并在传递无效位置时抛出 \InvalidArgumentException。 |
---|---|
参见 | Nested::$_validLocations |
自 |
1.7.0 |
抛出 |
|
参数
- 参考ID
int
用于引用新位置的节点的主键。- position
string
位置类型字符串。
响应
void
setProperties
根据命名数组/哈希设置对象属性。
setProperties( properties) :
自 |
1.7.0 |
---|---|
参见 | CMSObject::set() |
弃用 |
4.3.0 将在 6.0 中移除 为属性创建一个合适的 setter 函数 |
参数
- 属性
mixed
关联数组或其他对象。
响应
bool
setRules
设置记录规则的方法。
setRules( input) :
自 |
1.7.0 |
---|
参数
- 输入
mixed
Rules 对象、JSON 字符串或数组。
响应
void
store
在数据库表中存储节点的方法。
store( updateNulls = false) :
自 |
1.7.0 |
---|
参数
- 更新空值
bool
如果也要更新空值,则为 true。
响应
bool
成功时为 True。
属性
_errors
错误消息或 Exception 对象数组。
自 |
1.7.0 |
---|---|
弃用 |
3.1.4 JError 已弃用 |
类型
array<string|int, mixed>
_includePaths
用于搜索 Table 类的包含路径。
自 |
3.0.0 |
---|
类型
array<string|int, mixed>
tableFields
Table 字段缓存
自 |
3.10.4 |
---|
类型
array<string|int, mixed>
_tbl
要建模的数据库表的名称。
自 |
1.7.0 |
---|
类型
string
_tbl_key
表中主键字段的名称。
自 |
1.7.0 |
---|
类型
string
_tbl_keys
表中主键字段的名称。
自 |
3.0.1 |
---|
类型
array<string|int, mixed>
_db
DatabaseDriver 对象。
自 |
1.7.0 |
---|
类型
DatabaseDriver
_trackAssets
是否将行跟踪为 ACL 资产?
自 |
1.7.0 |
---|
类型
bool
_locked
指示表已被锁定。
自 |
1.7.0 |
---|
类型
bool
_autoincrement
指示主键自动递增。
自 |
3.1.4 |
---|
类型
bool
_columnAlias
包含排序、点击次数等“特殊”列的别名的数组。
自 |
3.4.0 |
---|
类型
array<string|int, mixed>
_jsonEncode
将在 bind 函数中进行 JSON 编码的键名数组。
自 |
3.3 |
---|
类型
array<string|int, mixed>
_supportNullValue
指示列完全支持数据库中的 NULL 值。
自 |
3.10.0 |
---|
类型
bool
typeAlias
UCM 类型别名。用于标签、内容版本控制等。留空表示有效禁用这些功能。
自 |
4.0.0 |
---|
类型
string
parent_id
保存父节点主键的对象属性。为节点提供邻接列表数据。
自 |
1.7.0 |
---|
类型
int
level
保存节点在树中的深度级别的对象属性。
自 |
1.7.0 |
---|
类型
int
lft
保存节点用于管理其在嵌套集树中的位置的左侧值的属性。
自 |
1.7.0 |
---|
类型
int
rgt
保存节点用于管理其在嵌套集树中的位置的右侧值的属性。
自 |
1.7.0 |
---|
类型
int
alias
保存用于构建完整文本路径(用正斜杠分隔)的节点别名的对象属性。
自 |
1.7.0 |
---|
类型
string
_location_id
保存用于存储行的位置引用节点主键的对象属性。
位置类型和引用节点的组合描述了在树中存储当前节点的位置。
自 |
1.7.0 |
---|
类型
int
_cache
用于在递归过程中缓存值的数组。
自 |
1.7.0 |
---|
类型
array<string|int, mixed>
_debug
调试级别
自 |
1.7.0 |
---|
类型
int
root_id
根 ID 的缓存
自 |
3.3 |
---|
类型
int
_validLocations
声明用于移动节点的有效位置值的数组。
自 |
3.7.0 |
---|
类型
array<string|int, mixed>