Php 更新时替换翻译,避免重复
每次更新某个实体时,我都需要更新i18n表中可翻译字段的翻译(我正在使用)。问题是,对于相同的Php 更新时替换翻译,避免重复,php,cakephp,internationalization,cakephp-3.0,Php,Cakephp,Internationalization,Cakephp 3.0,每次更新某个实体时,我都需要更新i18n表中可翻译字段的翻译(我正在使用)。问题是,对于相同的地区、型号、外键和字段四倍,我有多个翻译,但我只需要一个(准确地说是最后一个)如何更新现有的翻译而不是创建新的翻译? 以下是我保存翻译的方式: $entity->set($field, $value); foreach ($langs as $code) { $translation = $this->Translator->translate($value, "en", $c
地区
、型号
、外键
和字段
四倍,我有多个翻译,但我只需要一个(准确地说是最后一个)如何更新现有的翻译而不是创建新的翻译?
以下是我保存翻译的方式:
$entity->set($field, $value);
foreach ($langs as $code) {
$translation = $this->Translator->translate($value, "en", $code);
$entity->translation($code)->set([$field => $translation]);
}
$table->save($entity);
例如:
更新现有的翻译应该是开箱即用的,使用最新的
3.0.x
和3.3.x
进行快速测试,结果表明它按预期工作,即没有创建重复项。请始终提及您的确切CakePHP版本(3.x.x
,请参阅vendor/CakePHP/CakePHP/version.txt
),并确保干净的应用程序安装仍然存在此问题,并且您提供了足够的代码来重现此问题。更新现有翻译应该是现成的,使用最新的3.0.x
和3.3.x
进行快速测试,结果表明其工作正常,即未创建重复项。请始终提及您的确切CakePHP版本(3.x.x
,请参阅vendor/CakePHP/CakePHP/version.txt
),并确保干净的应用程序安装仍然存在此问题,并且您提供了足够的代码来重现此问题。