CakePHP
  • 文档
    • 图书
    • API
    • 视频
    • 报告安全问题
    • 隐私政策
    • 标识 & 商标
  • 商业解决方案
  • 商品
  • 公路旅行
  • 团队
  • 社区
    • 社区
    • 参与进来
    • 问题 (Github)
    • 面包房
    • 精选资源
    • 培训
    • 聚会
    • 我的 CakePHP
    • CakeFest
    • 时事通讯
    • 领英
    • YouTube
    • 脸书
    • 推特
    • 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
    • I18n
    • 日志
    • 邮件
    • 网络
    • ORM
      • 关联
        • 加载器
      • 行为
      • 异常
      • 定位器
      • 查询
      • 规则
    • 路由
    • 测试套件
    • 实用程序
    • 验证
    • 视图

类 SelectWithPivotLoader

实现使用 SELECT 查询和中间表加载关联的逻辑

命名空间: Cake\ORM\Association\Loader

属性摘要

  • $alias protected
    string

    加载结果的关联的别名

  • $associationType protected
    string

    触发加载的关联类型

  • $bindingKey protected
    array|string

    源关联的绑定键。

  • $finder protected
    callable

    一个可调用对象,它将返回一个用于加载关联结果的查询对象

  • $foreignKey protected
    array|string

    指向目标关联的外键

  • $junctionAssoc protected
    Cake\ORM\Association\HasMany

    中间关联实例

  • $junctionAssociationName protected
    string

    中间关联的名称

  • $junctionConditions protected
    Cake\Database\ExpressionInterfaceClosure|array|string|null

    中间关联的自定义条件

  • $junctionProperty protected
    string

    中间关联的属性名称,其结果应嵌套在其中。

  • $sort protected
    Cake\Database\ExpressionInterfaceClosure|array|string|null

    加载关联的排序选项

  • $sourceAlias protected
    string

    源关联的别名

  • $strategy protected
    string

    用于加载的策略,选择或子查询

  • $targetAlias protected
    string

    目标关联的别名

方法摘要

  • __construct() public

    将选项数组复制到此类中的属性。数组中的键对应于此类中的属性。

  • _addFilteringCondition() protected

    在给定过滤键和一些过滤值的情况下,将任何加载目标表查询中相关记录集所需的条件附加到目标表查询中。

  • _addFilteringJoin() protected

    在给定过滤键和一些过滤值的情况下,将任何加载目标表查询中相关记录集所需的条件附加到目标表查询中,当过滤需要使用子查询完成时。

  • _assertFieldsPresent() protected

    检查获取查询是否具有自动字段或已选择外键字段。如果缺少所需的字段,则抛出异常。

  • _buildQuery() protected

    辅助函数,用于构造一个新的 Query 对象,以返回目标表中与源表中 $options 指定的那些关联的所有记录。

  • _buildResultMap() protected

    构建一个包含 fetchQuery 结果的数组,这些结果按对应于此关联的外键值索引。

  • _buildSubquery() protected

    构建一个要用作过滤目标表中记录条件的查询,它是通过克隆用于加载源表中记录的原始查询构建的。

  • _createTupleCondition() protected

    返回一个 TupleComparison 对象,该对象可用于使用提供的运算符将来自 $keys 的所有字段与 $filter 中的元组值匹配。

  • _defaultOptions() protected

    返回用于 eagerLoader 的默认选项

  • _extractFinder() protected

    辅助方法,用于推断请求的查找器及其选项。

  • _linkField() protected

    生成一个用作表字段的字符串,该字段包含应应用过滤器值的那些值

  • _multiKeysInjector() protected

    返回一个可调用对象,用于查询结果集中的每一行,用于在匹配需要使用多个外键完成时注入急切加载的行

  • _resultInjector() protected

    返回一个可调用对象,用于查询结果集中的每一行,用于注入急切加载的行

  • _subqueryFields() protected

    计算需要参与子查询的字段。

  • buildEagerLoader() public

    返回一个可调用对象,该对象可用于将关联结果注入给定的迭代器中。此方法接受的选项与 Association::eagerLoader() 相同

方法详细信息

__construct() ¶ public

__construct(array<string, mixed> $options)

将选项数组复制到此类中的属性。数组中的键对应于此类中的属性。

参数
array<string, mixed> $options

_addFilteringCondition() ¶ protected

_addFilteringCondition(Cake\ORM\Query\SelectQuery $query, list<string>|string $key, mixed $filter): Cake\ORM\Query\SelectQuery

在给定过滤键和一些过滤值的情况下,将任何加载目标表查询中相关记录集所需的条件附加到目标表查询中。

参数
Cake\ORM\Query\SelectQuery $query

目标表的查询

list<string>|string $key

应用于过滤的字段

mixed $filter

应用于匹配 $key 的值

返回值
Cake\ORM\Query\SelectQuery

_addFilteringJoin() ¶ protected

_addFilteringJoin(Cake\ORM\Query\SelectQuery $query, list<string>|string $key, Cake\ORM\Query\SelectQuery $subquery): Cake\ORM\Query\SelectQuery

在给定过滤键和一些过滤值的情况下,将任何加载目标表查询中相关记录集所需的条件附加到目标表查询中,当过滤需要使用子查询完成时。

参数
Cake\ORM\Query\SelectQuery $query

目标表的查询

list<string>|string $key

应用于过滤的字段

Cake\ORM\Query\SelectQuery $subquery

用于过滤的子查询

返回值
Cake\ORM\Query\SelectQuery

_assertFieldsPresent() ¶ protected

_assertFieldsPresent(Cake\ORM\Query\SelectQuery $fetchQuery, list<string> $key): void

检查获取查询是否具有自动字段或已选择外键字段。如果缺少所需的字段,则抛出异常。

参数
Cake\ORM\Query\SelectQuery $fetchQuery
list<string> $key
返回值
void

_buildQuery() ¶ protected

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

辅助函数,用于构造一个新的 Query 对象,以返回目标表中与源表中 $options 指定的那些关联的所有记录。

用于基于条件急切加载目标表中的记录。

参数
array<string, mixed> $options

eagerLoader() 接受的选项

返回值
Cake\ORM\Query\SelectQuery
抛出
InvalidArgumentException
当关联需要键但未选中时。

_buildResultMap() ¶ protected

_buildResultMap(Cake\ORM\Query\SelectQuery $fetchQuery, array<string, mixed> $options): array<string, mixed>

构建一个包含 fetchQuery 结果的数组,这些结果按对应于此关联的外键值索引。

参数
Cake\ORM\Query\SelectQuery $fetchQuery

获取结果的查询

array<string, mixed> $options

传递给 eager loader 的选项

返回值
array<string, mixed>
抛出
Cake\Database\Exception\DatabaseException
当关联属性不是结果集的一部分时。

_buildSubquery() ¶ protected

_buildSubquery(Cake\ORM\Query\SelectQuery $query): Cake\ORM\Query\SelectQuery

构建一个要用作过滤目标表中记录条件的查询,它是通过克隆用于加载源表中记录的原始查询构建的。

参数
Cake\ORM\Query\SelectQuery $query

用于加载源记录的原始查询

返回值
Cake\ORM\Query\SelectQuery

_createTupleCondition() ¶ protected

_createTupleCondition(Cake\ORM\Query\SelectQuery $query, list<string> $keys, mixed $filter, string $operator): Cake\Database\Expression\TupleComparison

返回一个 TupleComparison 对象,该对象可用于使用提供的运算符将来自 $keys 的所有字段与 $filter 中的元组值匹配。

参数
Cake\ORM\Query\SelectQuery $query

目标表的查询

list<string> $keys

应用于过滤的字段

mixed $filter

应用于匹配 $key 的值

string $operator

用于比较元组的运算符

返回值
Cake\Database\Expression\TupleComparison

_defaultOptions() ¶ protected

_defaultOptions(): array<string, mixed>

返回用于 eagerLoader 的默认选项

返回值
array<string, mixed>

_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

查找器名称或包含名称作为键和选项作为值的数组。

返回值
array

_linkField() ¶ protected

_linkField(array<string, mixed> $options): list<string>|string

生成一个用作表字段的字符串,该字段包含应应用过滤器值的那些值

参数
array<string, mixed> $options

用于获取链接字段的选项。

返回值
list<string>|string

_multiKeysInjector() ¶ protected

_multiKeysInjector(array<string, mixed> $resultMap, list<string> $sourceKeys, string $nestKey): Closure

返回一个可调用对象,用于查询结果集中的每一行,用于在匹配需要使用多个外键完成时注入急切加载的行

参数
array<string, mixed> $resultMap

包含目标表的带键数组

list<string> $sourceKeys

一个带有别名键的数组,用于匹配

string $nestKey

结果应该嵌套在其中的键

返回值
Closure

_resultInjector() ¶ protected

_resultInjector(Cake\ORM\Query\SelectQuery $fetchQuery, array<string, mixed> $resultMap, array<string, mixed> $options): Closure

返回一个可调用对象,用于查询结果集中的每一行,用于注入急切加载的行

参数
Cake\ORM\Query\SelectQuery $fetchQuery

用于获取结果的查询

array<string, mixed> $resultMap

一个数组,其中外键作为键,相应的目标表结果作为值。

array<string, mixed> $options

传递给 eagerLoader 方法的选项

返回值
Closure

_subqueryFields() ¶ protected

_subqueryFields(Cake\ORM\Query\SelectQuery $query): array<string, array>

计算需要参与子查询的字段。

通常,这包括绑定键列。如果存在 ORDER BY,则这些列也被包含在内,因为这些列可能是计算值或常量值,需要存在才能确保加载正确的关联数据。

参数
Cake\ORM\Query\SelectQuery $query

获取字段的查询。

返回值
array<string, array>

buildEagerLoader() ¶ public

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

返回一个可调用对象,该对象可用于将关联结果注入给定的迭代器中。此方法接受的选项与 Association::eagerLoader() 相同

参数
array<string, mixed> $options

与 Association::eagerLoader() 相同的选项

返回值
Closure

属性详情

$alias ¶ protected

加载结果的关联的别名

类型
string

$associationType ¶ protected

触发加载的关联类型

类型
string

$bindingKey ¶ protected

源关联的绑定键。

类型
array|string

$finder ¶ protected

一个可调用对象,它将返回一个用于加载关联结果的查询对象

类型
callable

$foreignKey ¶ protected

指向目标关联的外键

类型
array|string

$junctionAssoc ¶ protected

中间关联实例

类型
Cake\ORM\Association\HasMany

$junctionAssociationName ¶ protected

中间关联的名称

类型
string

$junctionConditions ¶ protected

中间关联的自定义条件

类型
Cake\Database\ExpressionInterfaceClosure|array|string|null

$junctionProperty ¶ protected

中间关联的属性名称,其结果应嵌套在其中。

类型
string

$sort ¶ protected

加载关联的排序选项

类型
Cake\Database\ExpressionInterfaceClosure|array|string|null

$sourceAlias ¶ protected

源关联的别名

类型
string

$strategy ¶ protected

用于加载的策略,选择或子查询

类型
string

$targetAlias ¶ protected

目标关联的别名

类型
string
OpenHub
Pingping
Linode
  • 商业解决方案
  • 展示
  • 文档
  • 图书
  • API
  • 视频
  • 报告安全问题
  • 隐私政策
  • 标识 & 商标
  • 社区
  • 参与进来
  • 问题 (Github)
  • 面包房
  • 精选资源
  • 培训
  • 聚会
  • 我的 CakePHP
  • CakeFest
  • 时事通讯
  • 领英
  • YouTube
  • 脸书
  • 推特
  • Mastodon
  • 帮助 & 支持
  • 论坛
  • Stack Overflow
  • IRC
  • Slack
  • 付费支持

使用 CakePHP API 文档 生成