CakePHP
  • 文档
    • 书籍
    • API
    • 视频
    • 报告安全问题
    • 隐私政策
    • 标识和商标
  • 商业解决方案
  • 纪念品
  • 公路旅行
  • 团队
  • 社区
    • 社区
    • 参与进来
    • 问题(GitHub)
    • 烘焙店
    • 精选资源
    • 培训
    • 聚会
    • 我的 CakePHP
    • CakeFest
    • 新闻通讯
    • LinkedIn
    • YouTube
    • Facebook
    • Twitter
    • Mastodon
    • 帮助与支持
    • 论坛
    • Stack Overflow
    • IRC
    • Slack
    • 付费支持
CakePHP

C CakePHP 5.1 Chiffon API

  • 项目
    • CakePHP
      • CakePHP
      • Chronos
      • Elastic Search
      • 队列
  • 版本
    • 5.1
      • 5.1
      • 5.0
      • 4.5
      • 4.4
      • 4.3
      • 4.2
      • 4.1
      • 4.0
      • 3.10
      • 3.9
      • 3.8
      • 3.7
      • 3.6
      • 3.5
      • 3.4
      • 3.3
      • 3.2
      • 3.1
      • 3.0
      • 2.10
      • 2.9
      • 2.8
      • 2.7
      • 2.6
      • 2.5
      • 2.4
      • 2.3
      • 2.2
      • 2.1
      • 2.0
      • 1.3
      • 1.2

命名空间

  • 全局
  • Cake
    • 缓存
    • 集合
    • 命令
    • 控制台
    • 控制器
    • 核心
    • 数据库
    • 数据源
    • 错误
    • 事件
    • 表单
    • Http
    • 国际化
    • 日志
    • 邮件
    • 网络
    • ORM
      • 关联
      • 行为
      • 异常
      • 定位器
      • 查询
      • 规则
    • 路由
    • 测试套件
    • 实用工具
    • 验证
    • 视图

类关联

关联是在两个表之间建立的关系,用于配置和自定义检索互连记录的方式。

抽象类
命名空间: Cake\ORM

常量

  • string
    MANY_TO_MANY ¶
    'manyToMany'

    多对多关联的关联类型。

  • string
    MANY_TO_ONE ¶
    'manyToOne'

    多对一关联的关联类型。

  • string
    ONE_TO_MANY ¶
    'oneToMany'

    一对多关联的关联类型。

  • string
    ONE_TO_ONE ¶
    'oneToOne'

    一对一关联的关联类型。

  • string
    STRATEGY_JOIN ¶
    'join'

    使用连接来获取关联记录的策略名称

  • string
    STRATEGY_SELECT ¶
    'select'

    使用选择来获取关联记录的策略名称

  • string
    STRATEGY_SUBQUERY ¶
    'subquery'

    使用子查询来获取关联记录的策略名称

属性概要

  • $_bindingKey protected
    list<string>|string

    拥有方表中用于与 foreignKey 匹配的字段名称

  • $_cascadeCallbacks protected
    bool

    级联删除是否也应该触发回调。

  • $_className protected
    string

    目标表对象的类名

  • $_conditions protected
    Closure|array

    从目标关联中获取记录时始终要包含的条件列表

  • $_dependent protected
    bool

    目标表上的记录是否依赖于源表,通常用于指示如果源表中的拥有记录被删除,则应删除记录。

  • $_finder protected
    array|string

    从目标表中获取行时要使用的默认查找器名称,数组值允许查找器名称和默认选项。

  • $_foreignKey protected
    list<string>|string|false

    表示要加载的表的外部键的字段名称

  • $_joinType protected
    string

    将关联添加到查询时要使用的连接类型

  • $_name protected
    string

    赋予关联的名称,它通常代表分配给目标关联表的别名

  • $_propertyName protected
    string

    应该使用目标表中的数据在源表记录中填充的属性名称。

  • $_sourceTable protected
    Cake\ORM\Table

    源表实例

  • $_strategy protected
    string

    用于获取关联记录的策略名称。某些关联类型可能没有实现,但只有一个策略可以获取记录。

  • $_tableLocator protected
    Cake\ORM\Locator\LocatorInterface|null

    表定位器实例

  • $_targetTable protected
    Cake\ORM\Table

    目标表实例

  • $_validStrategies protected
    list<string>

    此关联的有效策略。子类可以缩小范围。

  • $defaultTable protected
    string|null

    此对象的默认表别名。

方法概要

  • __call() public

    将方法调用代理到目标表。

  • __construct() public

    构造函数。子类可以覆盖 _options 函数以获取传递给构造函数的原始选项列表,如果期望任何其他特殊键。

  • __get() public

    将属性检索代理到目标表。这对获取此关联的关联很有用

  • __isset() public

    将 isset 调用代理到目标表。这对检查目标表是否具有另一个具有传入名称的关联很有用

  • _appendFields() protected

    帮助函数,用于有条件地将字段追加到查询的选择子句中,这些字段来自另一个查询对象中找到的字段。

  • _appendNotMatching() protected

    有条件地向传入的查询添加一个条件,该条件将使其查找与该关联没有匹配的记录。

  • _bindNewAssociations() protected

    将所有可附加的关联应用于 $query,这些关联来自 $surrogate 查询中找到的包含。

  • _camelize() protected

    创建 $name 的驼峰式版本

  • _dispatchBeforeFind() protected

    在目标表上触发 beforeFind,用于该关联正在附加到的查询

  • _entityName() protected

    为指定名称创建正确的实体名称(单数)

  • _extractFinder() protected

    帮助方法来推断请求的查找器及其选项。

  • _fixtureName() protected

    创建装订名称

  • _formatAssociationResults() protected

    如果 $surrogate 查询声明了任何其他格式化程序,则向传入的 $query 添加一个格式化程序函数。由于 $surrogate 查询对应于关联的目标表,因此生成的格式化程序将是将代理格式化程序应用于仅对应于该表的属性的结果。

  • _joinCondition() protected

    返回一个或多个条件,这些条件将被附加到为获取目标表上的结果而生成的连接子句中。

  • _modelKey() protected

    为关联创建正确的下划线模型键

  • _modelNameFromKey() protected

    从外部键创建正确的模型名称

  • _options() protected

    覆盖此函数以初始化任何具体的关联类,它将传递给构造函数的原始选项列表。

  • _pluginNamespace() protected

    返回插件的命名空间

  • _pluginPath() protected

    找到插件的正确路径。扫描 $pluginPaths 以查找所需的插件。

  • _pluralHumanName() protected

    创建视图中使用的复数人名

  • _propertyName() protected

    根据关联名称返回默认属性名称。

  • _singularHumanName() protected

    创建视图中使用的单数人名

  • _singularName() protected

    创建用于视图的单数名称。

  • _variableName() protected

    为视图创建复数变量名称

  • attachTo() public

    更改查询对象以在最终结果中包含关联的目标表数据

  • canBeJoined() public

    此关联是否可以直接在查询连接中表达

  • cascadeDelete() abstract public

    处理从关联模型级联删除。

  • defaultRowValue() public

    在为该关联追加一个属性(其值为默认的空值,根据关联是否被外部连接或获取来决定)之后,返回修改后的行。

  • deleteAll() public

    将删除操作代理给目标 Table::deleteAll() 方法。

  • eagerLoader() abstract public

    预加载目标表中与源表中的另一组记录相关的记录列表。可以通过两种方式指定源记录:第一种是通过传递一个在源表上查找的 Query 对象;另一种是显式地传递一个源表的键值数组。

  • exists() public

    将操作代理给目标表的 exists 方法,并在该方法之后追加此关联的默认条件。

  • fetchTable() public

    获取表格实例的便捷方法。

  • find() public

    将查找操作代理给目标表的 find 方法,并根据该关联的配置相应地修改查询。

  • getBindingKey() public

    获取表示与目标表绑定字段的字段名称。如果没有手动指定,则使用拥有方表的 primary key。

  • getCascadeCallbacks() public

    获取级联删除是否应该触发回调。

  • getClassName() public

    获取目标表对象的类名。

  • getConditions() public

    获取从目标关联中获取记录时始终包含的条件列表。

  • getDependent() public

    设置目标表上的记录是否依赖于源表。

  • getFinder() public

    获取用于从目标表获取行的默认查找器。

  • getForeignKey() public

    获取表示指向目标表的 foreign key 的字段名称。

  • getJoinType() public

    获取将关联添加到查询时使用的连接类型。

  • getName() public

    获取该关联的名称,通常是分配给目标关联表的别名。

  • getProperty() public

    获取在源表记录中用目标表中的数据填充的属性名称。

  • getSource() public

    获取关联源端的表实例。

  • getStrategy() public

    获取用于获取关联记录的策略名称。请注意,某些关联类型可能只实现默认策略,因此对该设置的任何更改都将无效。

  • getTableLocator() public

    获取表定位器。

  • getTarget() public

    获取关联目标端的表实例。

  • isOwningSide() abstract public

    返回传入的表是否是该关联的拥有方。这意味着如果 'source' 中的行不存在,'target' 表中的行将丢失重要信息或必要信息。

  • requiresKeys() public

    如果预加载过程需要一组拥有方表的绑定键才能用作查找器查询中的过滤器,则返回 true。

  • saveAssociated() abstract public

    从传入的实体中提取目标的关联数据,并将保存操作代理给目标表。

  • setBindingKey() public

    设置表示与目标表绑定字段的字段名称。如果没有手动指定,则使用拥有方表的 primary key。

  • setCascadeCallbacks() public

    设置级联删除是否应该触发回调。

  • setClassName() public

    设置目标表对象的类名。

  • setConditions() public

    设置从目标关联中获取记录时始终包含的条件列表。

  • setDependent() public

    设置目标表上的记录是否依赖于源表。

  • setFinder() public

    设置用于从目标表获取行的默认查找器。

  • setForeignKey() public

    设置表示指向目标表的 foreign key 的字段名称。

  • setJoinType() public

    设置将关联添加到查询时使用的连接类型。

  • setProperty() public

    设置在源表记录中用目标表中的数据填充的属性名称。

  • setSource() public

    设置关联源端的表实例。

  • setStrategy() public

    设置用于获取关联记录的策略名称。请注意,某些关联类型可能只实现默认策略,因此对该设置的任何更改都将无效。

  • setTableLocator() public

    设置表定位器。

  • setTarget() public

    设置关联目标端的表实例。

  • transformRow() public

    将关联值的关联结果行正确地嵌套到源结果中的正确数组键中。

  • type() abstract public

    获取关系类型。

  • updateAll() public

    将更新操作代理给目标 Table::updateAll() 方法。

方法详情

__call() ¶ public

__call(string $method, array $argument): mixed

将方法调用代理到目标表。

参数
string $method

要调用的方法的名称。

array $argument

传递给函数的参数列表。

返回值
混合类型
抛出
BadMethodCallException

__construct() ¶ public

__construct(string $alias, array<string, mixed> $options = [])

构造函数。子类可以覆盖 _options 函数以获取传递给构造函数的原始选项列表,如果期望任何其他特殊键。

参数
string $alias

赋予关联的名称。

array<string, mixed> $options optional

要在此对象上设置的属性列表。

__get() ¶ public

__get(string $property): self

将属性检索代理到目标表。这对获取此关联的关联很有用

参数
string $property

属性名称。

返回值
self
抛出
RuntimeException
如果不存在具有此名称的关联。

__isset() ¶ public

__isset(string $property): bool

将 isset 调用代理到目标表。这对检查目标表是否具有另一个具有传入名称的关联很有用

参数
string $property

属性名称。

返回值
bool

_appendFields() ¶ protected

_appendFields(Cake\ORM\Query\SelectQuery $query, Cake\ORM\Query\SelectQuery $surrogate, array<string, mixed> $options): void

帮助函数,用于有条件地将字段追加到查询的选择子句中,这些字段来自另一个查询对象中找到的字段。

参数
Cake\ORM\Query\SelectQuery $query

将字段追加到的查询。

Cake\ORM\Query\SelectQuery $surrogate

将从中复制字段的查询。

array<string, mixed> $options

传递给 attachTo 方法的选项。

返回值
void

_appendNotMatching() ¶ protected

_appendNotMatching(Cake\ORM\Query\SelectQuery $query, array<string, mixed> $options): void

有条件地向传入的查询添加一个条件,该条件将使其查找与该关联没有匹配的记录。

参数
Cake\ORM\Query\SelectQuery $query

要修改的查询。

array<string, mixed> $options

包含 negateMatch 键的选项数组。

返回值
void

_bindNewAssociations() ¶ protected

_bindNewAssociations(Cake\ORM\Query\SelectQuery $query, Cake\ORM\Query\SelectQuery $surrogate, array<string, mixed> $options): void

将所有可附加的关联应用于 $query,这些关联来自 $surrogate 查询中找到的包含。

将 $surrogate 查询中包含的所有关联复制到传入的 $query 中。包含关系已更改,以便它们符合其来源的关联链。

参数
Cake\ORM\Query\SelectQuery $query

将关联附加到的查询。

Cake\ORM\Query\SelectQuery $surrogate

具有要附加的包含关系的查询。

array<string, mixed> $options

传递给 attachTo 方法的选项。

返回值
void

_camelize() ¶ protected

_camelize(string $name): string

创建 $name 的驼峰式版本

参数
string $name

名称

返回值
string

_dispatchBeforeFind() ¶ protected

_dispatchBeforeFind(Cake\ORM\Query\SelectQuery $query): void

在目标表上触发 beforeFind,用于该关联正在附加到的查询

参数
Cake\ORM\Query\SelectQuery $query

该关联附加到的查询。

返回值
void

_entityName() ¶ protected

_entityName(string $name): string

为指定名称创建正确的实体名称(单数)

参数
string $name

名称

返回值
string

_extractFinder() ¶ protected

_extractFinder(array|string $finderData): array

帮助方法来推断请求的查找器及其选项。

从查找器 $type 中返回推断的选项。

示例

以下内容将使用查找器值作为其选项调用查找器 'translations': $query->contain(['Comments' => ['finder' => ['translations']]]); $query->contain(['Comments' => ['finder' => ['translations' => []]]]); $query->contain(['Comments' => ['finder' => ['translations' => ['locales' => ['en_US']]]]]);

参数
array|string $finderData

查找器名称或一个数组,该数组以名称作为键,选项作为值。

返回值
数组

_fixtureName() ¶ protected

_fixtureName(string $name): string

创建装订名称

参数
string $name

模型类名

返回值
string

_formatAssociationResults() ¶ protected

_formatAssociationResults(Cake\ORM\Query\SelectQuery $query, Cake\ORM\Query\SelectQuery $surrogate, array<string, mixed> $options): void

如果 $surrogate 查询声明了任何其他格式化程序,则向传入的 $query 添加一个格式化程序函数。由于 $surrogate 查询对应于关联的目标表,因此生成的格式化程序将是将代理格式化程序应用于仅对应于该表的属性的结果。

参数
Cake\ORM\Query\SelectQuery $query

将格式化程序应用到的查询。

Cake\ORM\Query\SelectQuery $surrogate

具有关联目标表的格式化程序的查询。

array<string, mixed> $options

传递给 attachTo 方法的选项。

返回值
void

_joinCondition() ¶ protected

_joinCondition(array<string, mixed> $options): array

返回一个或多个条件,这些条件将被附加到为获取目标表上的结果而生成的连接子句中。

参数
array<string, mixed> $options

传递给 attachTo 方法的选项列表

返回值
数组
抛出
Cake\Database\Exception\DatabaseException
如果外键中的列数与源表主键中的列数不匹配

_modelKey() ¶ protected

_modelKey(string $name): string

为关联创建正确的下划线模型键

如果输入包含点,则假设右侧是实际的表名。

参数
string $name

模型类名

返回值
string

_modelNameFromKey() ¶ protected

_modelNameFromKey(string $key): string

从外部键创建正确的模型名称

参数
string $key

外键

返回值
string

_options() ¶ protected

_options(array<string, mixed> $options): void

覆盖此函数以初始化任何具体的关联类,它将传递给构造函数的原始选项列表。

参数
array<string, mixed> $options

用于初始化的选项列表

返回值
void

_pluginNamespace() ¶ protected

_pluginNamespace(string $pluginName): string

返回插件的命名空间

参数
string $pluginName

插件名称

返回值
string

_pluginPath() ¶ protected

_pluginPath(string $pluginName): string

找到插件的正确路径。扫描 $pluginPaths 以查找所需的插件。

参数
string $pluginName

要使用的插件名称,例如 DebugKit

返回值
string

_pluralHumanName() ¶ protected

_pluralHumanName(string $name): string

创建视图中使用的复数人名

参数
string $name

控制器名称

返回值
string

_propertyName() ¶ protected

_propertyName(): string

根据关联名称返回默认属性名称。

返回值
string

_singularHumanName() ¶ protected

_singularHumanName(string $name): string

创建视图中使用的单数人名

参数
string $name

控制器名称

返回值
string

_singularName() ¶ protected

_singularName(string $name): string

创建用于视图的单数名称。

参数
string $name

要使用的名称

返回值
string

_variableName() ¶ protected

_variableName(string $name): string

为视图创建复数变量名称

参数
string $name

要使用的名称

返回值
string

attachTo() ¶ public

attachTo(Cake\ORM\Query\SelectQuery $query, array<string, mixed> $options = []): void

更改查询对象以在最终结果中包含关联的目标表数据

选项数组接受以下键

  • includeFields: 是否在结果中包含目标模型字段
  • foreignKey: 要用作外键的字段名称,如果为 false,则不会使用任何外键
  • conditions: 包含用于过滤联接的条件列表的数组,此数组将与最初为此关联配置的任何条件合并
  • fields: 要包含在结果中的目标表中的字段列表
  • aliasPath: 一个点分隔的字符串,表示从传递的查询主表到此关联的关联名称路径。
  • propertyPath: 一个点分隔的字符串,表示从传递的查询主实体到此关联的关联属性路径
  • joinType: 在查询中使用的 SQL 联接类型。
  • negateMatch: 将一个条件附加到传递的查询,以排除与该关联匹配的内容。
参数
Cake\ORM\Query\SelectQuery $query

要修改以包含目标表数据的查询

array<string, mixed> $options optional

要考虑的任何额外选项或覆盖

返回值
void
抛出
RuntimeException
无法构建查询或关联。

canBeJoined() ¶ public

canBeJoined(array<string, mixed> $options = []): bool

此关联是否可以直接在查询连接中表达

参数
array<string, mixed> $options optional

可能更改返回值的自定义选项键

返回值
bool

cascadeDelete() ¶ abstract public

cascadeDelete(Cake\Datasource\EntityInterface $entity, array<string, mixed> $options = []): bool

处理从关联模型级联删除。

每个实现类都应该根据需要处理级联删除。

参数
Cake\Datasource\EntityInterface $entity

启动级联删除的实体。

array<string, mixed> $options optional

原始删除的选项。

返回值
bool

defaultRowValue() ¶ public

defaultRowValue(array<string, mixed> $row, bool $joined): array<string, mixed>

在为该关联追加一个属性(其值为默认的空值,根据关联是否被外部连接或获取来决定)之后,返回修改后的行。

参数
array<string, mixed> $row

要设置默认值的行。

bool $joined

该行是否为与该关联直接联接的结果

返回值
array<string, mixed>

deleteAll() ¶ public

deleteAll(Cake\Database\Expression\QueryExpressionClosure|array|string|null $conditions): int

将删除操作代理给目标 Table::deleteAll() 方法。

参数
Cake\Database\Expression\QueryExpressionClosure|array|string|null $conditions

要使用的条件,接受 Query::where() 可以接受的任何内容。

返回值
int
另请参阅
\Cake\ORM\Table::deleteAll()

eagerLoader() ¶ abstract public

eagerLoader(array<string, mixed> $options): Closure

预加载目标表中与源表中的另一组记录相关的记录列表。可以通过两种方式指定源记录:第一种是通过传递一个在源表上查找的 Query 对象;另一种是显式地传递一个源表的键值数组。

传递相关源记录的必要方式由“策略”控制。当使用子查询策略时,它需要对源表进行查询。当使用选择策略时,将使用主键列表。

返回一个闭包,该闭包应针对特定查询中返回的每条记录运行。此可调用函数将负责注入与每个传递的行相关的字段。

选项数组接受以下键

  • query: 设置用于查找源表记录的 SelectQuery 对象
  • keys: 源表中的主键值列表
  • foreignKey: 用于关联两个表的字段名称
  • conditions: 要传递给查询 where() 方法的条件列表
  • sort: 记录应返回的方向
  • fields: 要从目标表中选择的字段列表
  • contain: 要与目标表关联的急切加载关联的表列表
  • strategy: 用于查找目标表记录的策略名称
  • nestKey: 当转换行时将找到结果的数组键
参数
array<string, mixed> $options

急切加载的选项。

返回值
Closure

exists() ¶ public

exists(Cake\Database\ExpressionInterfaceClosure|array|string|null $conditions): bool

将操作代理给目标表的 exists 方法,并在该方法之后追加此关联的默认条件。

参数
Cake\Database\ExpressionInterfaceClosure|array|string|null $conditions

用于检查是否有任何记录匹配的条件。

返回值
bool
另请参阅
\Cake\ORM\Table::exists()

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`。
另请参阅
\Cake\ORM\TableLocator::get()

find() ¶ public

find(array<string, mixed>|string|null $type = null, mixed ...$args): Cake\ORM\Query\SelectQuery

将查找操作代理给目标表的 find 方法,并根据该关联的配置相应地修改查询。

参数
array<string, mixed>|string|null $type optional

要执行的查询类型,如果传递数组,则将解释为 `$args` 参数

mixed ...$args

与查找器特定参数匹配的参数

返回值
Cake\ORM\Query\SelectQuery
另请参阅
\Cake\ORM\Table::find()

getBindingKey() ¶ public

getBindingKey(): list<string>|string

获取表示与目标表绑定字段的字段名称。如果没有手动指定,则使用拥有方表的 primary key。

返回值
list<string>|string

getCascadeCallbacks() ¶ public

getCascadeCallbacks(): bool

获取级联删除是否应该触发回调。

返回值
bool

getClassName() ¶ public

getClassName(): string

获取目标表对象的类名。

返回值
string

getConditions() ¶ public

getConditions(): Closure|array

获取从目标关联中获取记录时始终包含的条件列表。

返回值
Closure|array
另请参阅
\Cake\Database\Query::where() 的示例,说明数组的格式

getDependent() ¶ public

getDependent(): bool

设置目标表上的记录是否依赖于源表。

这主要用于表明如果源表中拥有记录被删除,则应删除记录。

返回值
bool

getFinder() ¶ public

getFinder(): array|string

获取用于从目标表获取行的默认查找器。

返回值
array|string

getForeignKey() ¶ public

getForeignKey(): list<string>|string|false

获取表示指向目标表的 foreign key 的字段名称。

返回值
list<string>|string|false

getJoinType() ¶ public

getJoinType(): string

获取将关联添加到查询时使用的连接类型。

返回值
string

getName() ¶ public

getName(): string

获取该关联的名称,通常是分配给目标关联表的别名。

返回值
string

getProperty() ¶ public

getProperty(): string

获取在源表记录中用目标表中的数据填充的属性名称。

返回值
string

getSource() ¶ public

getSource(): Cake\ORM\Table

获取关联源端的表实例。

返回值
Cake\ORM\Table

getStrategy() ¶ public

getStrategy(): string

获取用于获取关联记录的策略名称。请注意,某些关联类型可能只实现默认策略,因此对该设置的任何更改都将无效。

返回值
string

getTableLocator() ¶ public

getTableLocator(): Cake\ORM\Locator\LocatorInterface

获取表定位器。

返回值
Cake\ORM\Locator\LocatorInterface

getTarget() ¶ public

getTarget(): Cake\ORM\Table

获取关联目标端的表实例。

返回值
Cake\ORM\Table

isOwningSide() ¶ 抽象 公开

isOwningSide(Cake\ORM\Table $side): bool

返回传入的表是否是该关联的拥有方。这意味着如果 'source' 中的行不存在,'target' 表中的行将丢失重要信息或必要信息。

参数
Cake\ORM\Table $side

拥有权的潜在表格

返回值
bool

requiresKeys() ¶ 公开

requiresKeys(array<string, mixed> $options = []): bool

如果预加载过程需要一组拥有方表的绑定键才能用作查找器查询中的过滤器,则返回 true。

参数
array<string, mixed> $options optional

包含要使用的策略的选项。

返回值
bool

saveAssociated() ¶ 抽象 公开

saveAssociated(Cake\Datasource\EntityInterface $entity, array<string, mixed> $options = []): Cake\Datasource\EntityInterface|false

从传入的实体中提取目标的关联数据,并将保存操作代理给目标表。

参数
Cake\Datasource\EntityInterface $entity

要保存的数据

array<string, mixed> $options optional

保存关联数据的选项。

返回值
Cake\Datasource\EntityInterface|false
另请参阅
\Cake\ORM\Table::save()

setBindingKey() ¶ 公开

setBindingKey(list<string>|string $key): $this

设置表示与目标表绑定字段的字段名称。如果没有手动指定,则使用拥有方表的 primary key。

参数
list<string>|string $key

用于将两个表链接在一起的表格字段或字段

返回值
$this

setCascadeCallbacks() ¶ 公开

setCascadeCallbacks(bool $cascadeCallbacks): $this

设置级联删除是否应该触发回调。

参数
bool $cascadeCallbacks

级联回调开关值

返回值
$this

setClassName() ¶ 公开

setClassName(string $className): $this

设置目标表对象的类名。

参数
string $className

要设置的类名。

返回值
$this
抛出
InvalidArgumentException
如果在解析目标表后设置类名,并且它与目标表的类名不匹配。

setConditions() ¶ 公开

setConditions(Closure|array $conditions): $this

设置从目标关联中获取记录时始终包含的条件列表。

参数
Closure|array $conditions

要使用的条件列表

返回值
$this
另请参阅
\Cake\Database\Query::where() 的示例,说明数组的格式

setDependent() ¶ 公开

setDependent(bool $dependent): $this

设置目标表上的记录是否依赖于源表。

这主要用于表明如果源表中拥有记录被删除,则应删除记录。

如果未传递参数,则返回当前设置。

参数
bool $dependent

设置依赖模式。使用 null 读取当前状态。

返回值
$this

setFinder() ¶ 公开

setFinder(array|string $finder): $this

设置用于从目标表获取行的默认查找器。

参数
array|string $finder

要使用的查找器名称或查找器名称和选项数组。

返回值
$this

setForeignKey() ¶ 公开

setForeignKey(list<string>|string $key): $this

设置表示指向目标表的 foreign key 的字段名称。

参数
list<string>|string $key

用于将两个表链接在一起的键或键

返回值
$this

setJoinType() ¶ 公开

setJoinType(string $type): $this

设置将关联添加到查询时使用的连接类型。

参数
string $type

要使用的联接类型(例如 INNER)

返回值
$this

setProperty() ¶ 公开

setProperty(string $name): $this

设置在源表记录中用目标表中的数据填充的属性名称。

参数
string $name

关联属性的名称。使用 null 读取当前值。

返回值
$this

setSource() ¶ 公开

setSource(Cake\ORM\Table $table): $this

设置关联源端的表实例。

参数
Cake\ORM\Table $table

要作为源端分配的实例

返回值
$this

setStrategy() ¶ 公开

setStrategy(string $name): $this

设置用于获取关联记录的策略名称。请注意,某些关联类型可能只实现默认策略,因此对该设置的任何更改都将无效。

参数
string $name

策略类型。使用 null 读取当前值。

返回值
$this
抛出
InvalidArgumentException
当提供无效的策略时。

setTableLocator() ¶ 公开

setTableLocator(Cake\ORM\Locator\LocatorInterface $tableLocator): $this

设置表定位器。

参数
Cake\ORM\Locator\LocatorInterface $tableLocator

LocatorInterface 实例。

返回值
$this

setTarget() ¶ 公开

setTarget(Cake\ORM\Table $table): $this

设置关联目标端的表实例。

参数
Cake\ORM\Table $table

要作为目标端分配的实例

返回值
$this

transformRow() ¶ 公开

transformRow(array<string, mixed> $row, string $nestKey, bool $joined, string|null $targetProperty = null): array

将关联值的关联结果行正确地嵌套到源结果中的正确数组键中。

参数
array<string, mixed> $row

要转换的行

string $nestKey

此关联结果应在其中找到的数组键

bool $joined

该行是否为与该关联直接联接的结果

string|null $targetProperty 可选

源结果中关联数据应嵌套在其中的属性名称。如果没有提供,将使用默认名称。

返回值
数组

type() ¶ 抽象 公开

type(): string

获取关系类型。

返回值
string

updateAll() ¶ 公开

updateAll(Cake\Database\Expression\QueryExpressionClosure|array|string $fields, Cake\Database\Expression\QueryExpressionClosure|array|string|null $conditions): int

将更新操作代理给目标 Table::updateAll() 方法。

参数
Cake\Database\Expression\QueryExpressionClosure|array|string $fields

字段=>新值的哈希。

Cake\Database\Expression\QueryExpressionClosure|array|string|null $conditions

要使用的条件,接受 Query::where() 中的任何内容

返回值
int
另请参阅
\Cake\ORM\Table::updateAll()

属性详细信息

$_bindingKey ¶ 受保护

拥有方表中用于与 foreignKey 匹配的字段名称

类型
list<string>|string

$_cascadeCallbacks ¶ 受保护

级联删除是否也应该触发回调。

类型
bool

$_className ¶ 受保护

目标表对象的类名

类型
string

$_conditions ¶ 受保护

从目标关联中获取记录时始终要包含的条件列表

类型
Closure|array

$_dependent ¶ 受保护

目标表上的记录是否依赖于源表,通常用于指示如果源表中的拥有记录被删除,则应删除记录。

类型
bool

$_finder ¶ 受保护

从目标表中获取行时要使用的默认查找器名称,数组值允许查找器名称和默认选项。

类型
array|string

$_foreignKey ¶ 受保护

表示要加载的表的外部键的字段名称

类型
list<string>|string|false

$_joinType ¶ 受保护

将关联添加到查询时要使用的连接类型

类型
string

$_name ¶ 受保护

赋予关联的名称,它通常代表分配给目标关联表的别名

类型
string

$_propertyName ¶ 受保护

应该使用目标表中的数据在源表记录中填充的属性名称。

类型
string

$_sourceTable ¶ 受保护

源表实例

类型
Cake\ORM\Table

$_strategy ¶ 受保护

用于获取关联记录的策略名称。某些关联类型可能没有实现,但只有一个策略可以获取记录。

类型
string

$_tableLocator ¶ 受保护

表定位器实例

类型
Cake\ORM\Locator\LocatorInterface|null

$_targetTable ¶ 受保护

目标表实例

类型
Cake\ORM\Table

$_validStrategies ¶ 受保护

此关联的有效策略。子类可以缩小范围。

类型
list<string>

$defaultTable ¶ 受保护

此对象的默认表别名。

类型
string|null
OpenHub
Pingping
Linode
  • 业务解决方案
  • 展示
  • 文档
  • 书籍
  • API
  • 视频
  • 报告安全问题
  • 隐私政策
  • 标识和商标
  • 社区
  • 参与进来
  • 问题(GitHub)
  • 烘焙店
  • 精选资源
  • 培训
  • 聚会
  • 我的 CakePHP
  • CakeFest
  • 新闻通讯
  • LinkedIn
  • YouTube
  • Facebook
  • Twitter
  • Mastodon
  • 帮助与支持
  • 论坛
  • Stack Overflow
  • IRC
  • Slack
  • 付费支持

使用 CakePHP API 文档 生成