类 LazyEagerLoader
包含能够通过使用与 EagerLoader 相同的语法将急切加载的关联注入实体或实体列表的方法。
命名空间: Cake\ORM
方法摘要
-
_getPropertyMap() protected
返回属性名称的映射,其中关联结果应注入到顶级实体中。
-
_getQuery() protected
构建一个查询,用于加载传递的实体对象列表及其在 $contain 中指定的关联。
-
_injectResults() protected
将急切加载器查询的结果注入到原始实体列表中。
-
loadInto() public
通过在数据库中执行额外的查询并将结果合并到相应的属性中,加载传递的实体或实体列表中指定的关联。
方法详细
_getPropertyMap() ¶ protected
_getPropertyMap(Cake\ORM\Table $source, list<string> $associations): array<string, string>
返回属性名称的映射,其中关联结果应注入到顶级实体中。
参数
-
Cake\ORM\Table
$source 具有顶级关联的表
-
list<string>
$associations 顶级关联的名称
返回值
array<string, string>
_getQuery() ¶ protected
_getQuery(arrayCake\Datasource\EntityInterface> $entities, array $contain, Cake\ORM\Table $source): Cake\ORM\Query\SelectQuery
构建一个查询,用于加载传递的实体对象列表及其在 $contain 中指定的关联。
参数
-
arrayCake\Datasource\EntityInterface>
$entities 原始实体
-
array
$contain 要加载的关联
-
Cake\ORM\Table
$source 用于获取顶级实体的表
返回值
Cake\ORM\Query\SelectQuery
_injectResults() ¶ protected
_injectResults(arrayCake\Datasource\EntityInterface> $entities, Cake\ORM\Query\SelectQuery $query, list<string> $associations, Cake\ORM\Table $source): arrayCake\Datasource\EntityInterface>
将急切加载器查询的结果注入到原始实体列表中。
参数
-
arrayCake\Datasource\EntityInterface>
$entities 原始实体列表
-
Cake\ORM\Query\SelectQuery
$query 加载结果的查询
-
list<string>
$associations 加载的顶级关联
-
Cake\ORM\Table
$source 实体来源的表
返回值
arrayCake\Datasource\EntityInterface>
loadInto() ¶ public
loadInto(Cake\Datasource\EntityInterface|arrayCake\Datasource\EntityInterface> $entities, array $contain, Cake\ORM\Table $source): Cake\Datasource\EntityInterface|arrayCake\Datasource\EntityInterface>
通过在数据库中执行额外的查询并将结果合并到相应的属性中,加载传递的实体或实体列表中指定的关联。
关联的属性将被覆盖在每个实体上。
参数
-
Cake\Datasource\EntityInterface|arrayCake\Datasource\EntityInterface>
$entities 单个实体或实体列表
-
array
$contain 一个
contain()
兼容的数组。-
Cake\ORM\Table
$source 用于获取顶级实体的表
返回值
Cake\Datasource\EntityInterface|arrayCake\Datasource\EntityInterface>
参见
\Cake\ORM\Query::contain()