Trait TranslateStrategyTrait
包含 TranslateBehavior 策略类所需的通用代码。
属性概要
-
$locale protected
string|null
将用于覆盖绑定表中翻译表字段的语言环境名称
-
$table protected
Cake\ORM\Table
表实例
-
$translationTable protected
Cake\ORM\Table
负责翻译的 Table 实例
方法概要
-
afterSave() public
在实体保存后,取消设置临时
_i18n
属性 -
buildMarshalMap() public
构建应包含在编组过程中的属性集。
-
getLocale() public
返回当前语言环境。
-
getTranslationTable() public
返回翻译表实例。
-
setLocale() public
设置要使用的语言环境。
-
unsetEmptyFields() protected
取消设置空的翻译以避免持久化。
方法详情
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
buildMarshalMap() ¶ public
buildMarshalMap(Cake\ORM\Marshaller $marshaller, array $map, array<string, mixed> $options): array
构建应包含在编组过程中的属性集。
添加 _translations
编组处理程序。您可以通过在提供给 Table::newEntity()
或 Table::patchEntity()
的选项中设置 'translations' => false
来禁用翻译的编组。
参数
-
Cake\ORM\Marshaller
$marshaller 行为附加到的表的编组程序。
-
array
$map 正在构建的属性映射。
-
array<string, mixed>
$options 编组调用中使用的选项数组。
返回值
array
getLocale() ¶ public
getLocale(): string
返回当前语言环境。
如果没有通过 setLocale()
明确设置语言环境,则此方法将返回当前配置的全局语言环境。
返回值
string
参见
\Cake\I18n\I18n::getLocale()
\Cake\ORM\Behavior\TranslateBehavior::setLocale()
\Cake\ORM\Behavior\TranslateBehavior::setLocale()
setLocale() ¶ public
setLocale(string|null $locale): $this
设置要使用的语言环境。
获取记录时,将使用通过此方法设置的语言环境的内容,类似地,保存数据时,它将以该语言环境保存数据。
请注意,如果实体具有已设置的 _locale
属性,则该语言环境将优先于通过此方法设置的语言环境(以及优先于全局配置的语言环境)!
参数
-
string|null
$locale 用于获取和保存记录的语言环境。传递
null
以取消设置当前语言环境,并使行为回退到使用全局配置的语言环境。
返回值
$this
unsetEmptyFields() ¶ protected
unsetEmptyFields(Cake\Datasource\EntityInterface $entity): void
取消设置空的翻译以避免持久化。
仅应在 $this->_config['allowEmptyTranslations'] 为 false 时调用。
参数
-
Cake\Datasource\EntityInterface
$entity 要检查其内部空翻译字段的实体。
返回值
void