类关联集合
关联类容器/集合。
包含用于管理关联和围绕保存和删除操作排序的方法。
属性概要
-
$_items protected
array<string,Cake\ORM\Association>
存储的关联
-
$_tableLocator protected
Cake\ORM\Locator\LocatorInterface|null
表定位器实例
-
$defaultTable protected
string|null
此对象的默认表别名。
方法概要
-
__construct() public
构造函数。
-
_normalizeAssociations() protected
从原始传递的关联列表中返回一个数组,其中点表示法被转换为嵌套数组,以便其他例程可以解析它们。
-
_save() protected
用于保存关联数据的辅助方法。
-
_saveAssociations() protected
用于保存关联数据的辅助方法。
-
add() public
向集合添加关联
-
cascadeDelete() public
在各种关联中级联删除。首先跨cascadeCallbacks为真的关联级联。
-
fetchTable() public
获取表实例的便捷方法。
-
get() public
按名称获取附加的关联。
-
getByProperty() public
按属性名称获取关联。
-
getByType() public
获取匹配特定类型的关联数组。
-
getIterator() public
允许遍历关联
-
getTableLocator() public
获取表定位器。
-
has() public
检查是否存在按名称附加的关联。
-
keys() public
获取集合中所有关联的名称。
-
load() public
创建并将关联对象添加到此集合中。
-
normalizeKeys() public
从混合数组中返回关联名称的关联数组。如果传递 true,则返回此集合中的所有关联名称。
-
remove() public
删除/移除关联。
-
removeAll() public
删除所有注册的关联。
-
saveChildren() public
保存所有作为给定实体的子级的关联。
-
saveParents() public
保存所有作为给定实体的父级的关联。
-
setTableLocator() public
设置表定位器。
方法详细说明
__construct() ¶ public
__construct(Cake\ORM\Locator\LocatorInterface|null $tableLocator = null)
构造函数。
为关联设置默认表定位器。如果未提供定位器,则将使用全局定位器。
参数
-
Cake\ORM\Locator\LocatorInterface|null
$tableLocator optional 表定位器实例。
_normalizeAssociations() ¶ protected
_normalizeAssociations(array|string $associations): array
从原始传递的关联列表中返回一个数组,其中点表示法被转换为嵌套数组,以便其他例程可以解析它们。
参数
-
array|string
$associations 包含的关联数组。
返回值
array
_save() ¶ protected
_save(Cake\ORM\Association $association, Cake\Datasource\EntityInterface $entity, array<string, mixed> $nested, array<string, mixed> $options): bool
用于保存关联数据的辅助方法。
参数
-
Cake\ORM\Association
$association 要保存的关联对象。
-
Cake\Datasource\EntityInterface
$entity 要保存的实体
-
array<string, mixed>
$nested 更深层关联的选项
-
array<string, mixed>
$options 原始选项
返回值
bool
_saveAssociations() ¶ protected
_saveAssociations(Cake\ORM\Table $table, Cake\Datasource\EntityInterface $entity, array $associations, array<string, mixed> $options, bool $owningSide): bool
用于保存关联数据的辅助方法。
参数
-
Cake\ORM\Table
$table 当前正在进行保存操作的表
-
Cake\Datasource\EntityInterface
$entity 要保存的实体
-
array
$associations 要保存的关联数组。
-
array<string, mixed>
$options 原始选项
-
bool
$owningSide 与关联类的isOwningSide方法相比。
返回值
bool
抛出
InvalidArgumentException
当使用未知别名时。
add() ¶ public
add(string $alias, Cake\ORM\Association $association): Cake\ORM\Association
向集合添加关联
如果添加的别名包含“.”,则“.”之前的部分将被删除。这使得使用插件更简单,因为插件.类语法经常被使用。
参数
-
string
$alias 关联别名
-
Cake\ORM\Association
$association 要添加的关联。
返回值
Cake\ORM\Association
抛出
Cake\Core\Exception\CakeException
如果别名已经添加。
cascadeDelete() ¶ public
cascadeDelete(Cake\Datasource\EntityInterface $entity, array<string, mixed> $options): bool
在各种关联中级联删除。首先跨cascadeCallbacks为真的关联级联。
参数
-
Cake\Datasource\EntityInterface
$entity 要删除关联的实体。
-
array<string, mixed>
$options 删除操作中使用的选项。
返回值
bool
fetchTable() ¶ public
fetchTable(string|null $alias = null, array<string, mixed> $options = []): Cake\ORM\Table
获取表实例的便捷方法。
参数
-
string|null
$alias optional 要获取的别名。应使用驼峰式命名法。如果为 null,则使用 $defaultTable 属性的值。
-
array<string, mixed>
$options optional 要使用这些选项构建表。如果表已加载,则注册表选项将被忽略。
返回值
Cake\ORM\Table
抛出
Cake\Core\Exception\CakeException
如果 `$alias` 参数和 `$defaultTable` 属性都为 `null`。
另请参见
get() ¶ public
get(string $alias): Cake\ORM\Association|null
按名称获取附加的关联。
参数
-
string
$alias 要获取的关联别名。
返回值
Cake\ORM\Association|null
getByProperty() ¶ public
getByProperty(string $prop): Cake\ORM\Association|null
按属性名称获取关联。
参数
-
string
$prop 要按其查找关联的属性。
返回值
Cake\ORM\Association|null
getByType() ¶ public
getByType(list<string>|string $class): arrayCake\ORM\Association>
获取匹配特定类型的关联数组。
参数
-
list<string>|string
$class 您想要的关联类型。例如 'BelongsTo' 或数组如 ['BelongsTo', 'HasOne']
返回值
arrayCake\ORM\Association>
getIterator() ¶ public
getIterator(): Traversable<string,Cake\ORM\Association>
允许遍历关联
返回值
Traversable<string,Cake\ORM\Association>
getTableLocator() ¶ public
getTableLocator(): Cake\ORM\Locator\LocatorInterface
获取表定位器。
返回值
Cake\ORM\Locator\LocatorInterface
load() ¶ public
load(string $className, string $associated, array<string, mixed> $options = []): Cake\ORM\Association
创建并将关联对象添加到此集合中。
参数
-
string
$className 关联类的名称。
-
string
$associated 目标表的别名。
-
array<string, mixed>
$options optional 用于配置关联定义的选项列表。
返回值
Cake\ORM\Association
抛出
InvalidArgumentException
normalizeKeys() ¶ public
normalizeKeys(array|string|bool $keys): array
从混合数组中返回关联名称的关联数组。如果传递 true,则返回此集合中的所有关联名称。
参数
-
array|string|bool
$keys 需要标准化的关联名称列表
返回值
array
saveChildren() ¶ public
saveChildren(Cake\ORM\Table $table, Cake\Datasource\EntityInterface $entity, array $associations, array<string, mixed> $options): bool
保存所有作为给定实体的子级的关联。
子关联包括任何以当前表为非拥有方的关联。
参数
-
Cake\ORM\Table
$table 表实体所针对的。
-
Cake\Datasource\EntityInterface
$entity 用于保存关联数据的实体。
-
array
$associations 需要保存子关联的关联列表。不在此列表中的关联将不会被保存。
-
array<string, mixed>
$options 保存操作的选项。
返回值
bool
saveParents() ¶ public
saveParents(Cake\ORM\Table $table, Cake\Datasource\EntityInterface $entity, array $associations, array<string, mixed> $options = []): bool
保存所有作为给定实体的父级的关联。
父关联包括任何以当前表为拥有方的关联。
参数
-
Cake\ORM\Table
$table 表实体所针对的。
-
Cake\Datasource\EntityInterface
$entity 用于保存关联数据的实体。
-
array
$associations 需要保存父关联的关联列表。不在此列表中的关联将不会被保存。
-
array<string, mixed>
$options optional 保存操作的选项。
返回值
bool
setTableLocator() ¶ public
setTableLocator(Cake\ORM\Locator\LocatorInterface $tableLocator): $this
设置表定位器。
参数
-
Cake\ORM\Locator\LocatorInterface
$tableLocator LocatorInterface 实例。
返回值
$this