接口 TranslateStrategyInterface
此接口描述了翻译行为策略的方法。
方法摘要
-
afterSave() public
在实体保存后,取消设置临时
_i18n
属性 -
beforeFind() public
回调方法,监听绑定表中的
beforeFind
事件。它通过预加载翻译字段并添加格式化程序来修改传递的查询,以将值复制到主表记录中。 -
beforeSave() public
在实体保存之前修改实体,以便翻译字段也保存在数据库中。
-
buildMarshalMap() public
构建一组应该包含在编组过程中的属性。
-
getLocale() public
返回当前语言环境。
-
getTranslationTable() public
返回翻译表实例。
-
groupTranslations() public
修改来自表查找的结果,以便将完整的翻译记录合并到
_translations
键下的每个实体中 -
setLocale() public
设置要使用的语言环境。
-
translationField() public
返回翻译字段的完全别名字段名。
方法详情
afterSave() ¶ public
afterSave(Cake\Event\EventInterfaceCake\ORM\Table> $event, Cake\Datasource\EntityInterface $entity): void
在实体保存后,取消设置临时 _i18n
属性
参数
-
Cake\Event\EventInterfaceCake\ORM\Table>
$event 触发的 beforeSave 事件
-
Cake\Datasource\EntityInterface
$entity 要保存的实体
返回值
void
beforeFind() ¶ public
beforeFind(Cake\Event\EventInterfaceCake\ORM\Table> $event, Cake\ORM\Query\SelectQuery $query, ArrayObject<string, mixed> $options): void
回调方法,监听绑定表中的 beforeFind
事件。它通过预加载翻译字段并添加格式化程序来修改传递的查询,以将值复制到主表记录中。
参数
-
Cake\Event\EventInterfaceCake\ORM\Table>
$event 触发的 beforeFind 事件。
-
Cake\ORM\Query\SelectQuery
$query 查询
-
ArrayObject<string, mixed>
$options 查询的选项
返回值
void
beforeSave() ¶ public
beforeSave(Cake\Event\EventInterfaceCake\ORM\Table> $event, Cake\Datasource\EntityInterface $entity, ArrayObject<string, mixed> $options): void
在实体保存之前修改实体,以便翻译字段也保存在数据库中。
参数
-
Cake\Event\EventInterfaceCake\ORM\Table>
$event 触发的 beforeSave 事件
-
Cake\Datasource\EntityInterface
$entity 要保存的实体
-
ArrayObject<string, mixed>
$options 传递给保存方法的选项
返回值
void
buildMarshalMap() ¶ public
buildMarshalMap(Cake\ORM\Marshaller $marshaller, array $map, array<string, mixed> $options): array
构建一组应该包含在编组过程中的属性。
参数
-
Cake\ORM\Marshaller
$marshaller 附加行为的表的编组器。
-
array
$map 正在构建的属性映射。
-
array<string, mixed>
$options 编组调用中使用的选项数组。
返回值
array
getLocale() ¶ public
getLocale(): string
返回当前语言环境。
如果通过 setLocale()
显式设置了语言环境,则此方法将返回当前配置的全局语言环境。
返回值
string
groupTranslations() ¶ public
groupTranslations(Cake\Datasource\ResultSetInterfaceCake\Datasource\EntityInterface|array> $results): Cake\Collection\CollectionInterface
修改来自表查找的结果,以便将完整的翻译记录合并到 _translations
键下的每个实体中
参数
-
Cake\Datasource\ResultSetInterfaceCake\Datasource\EntityInterface|array>
$results 要修改的结果。
返回值
Cake\Collection\CollectionInterface
setLocale() ¶ public
setLocale(string|null $locale): $this
设置要使用的语言环境。
获取记录时,使用通过此方法设置的语言环境的内容,同样,保存数据时,将以该语言环境保存数据。
注意,如果实体设置了 _locale
属性,则该语言环境将优先于通过此方法设置的语言环境(并且优先于为此设置的全局配置的语言环境)!
参数
-
string|null
$locale 用于获取和保存记录的语言环境。传递
null
以取消设置当前语言环境,并使行为回退到使用全局配置的语言环境。
返回值
$this
translationField() ¶ public
translationField(string $field): string
返回翻译字段的完全别名字段名。
如果请求的字段配置为翻译字段,则返回具有相应关联别名的字段。对于所有其他字段,返回表别名字段名称。
参数
-
string
$field 要设置别名的字段名称。
返回值
string