Localization Pimcore在字段本地化时将现有数据移动到本地化的en(英语)语言

Localization Pimcore在字段本地化时将现有数据移动到本地化的en(英语)语言,localization,pimcore,Localization,Pimcore,我有一个在pimcore 3上开发的现有项目。在对类的现有字段进行本地化时,我面临着一个挑战,因为将字段移动到本地化字段容器中意味着在使用该类的所有对象中丢失字段中的数据。我不想丢失这些数据,而是希望将这些数据移动到localizedfield容器的英语中 假设我有一个包含以下字段的类“测试”: 名称(文本) 描述(文本区) 类型(文本) 类别(对象) 让我们假设现在我想本地化以下3个领域的英语,法语和德语 名称(文本) 描述(文本区) 类别(对象) 但我不希望我现有的数据丢失,相反,我

我有一个在pimcore 3上开发的现有项目。在对类的现有字段进行本地化时,我面临着一个挑战,因为将字段移动到本地化字段容器中意味着在使用该类的所有对象中丢失字段中的数据。我不想丢失这些数据,而是希望将这些数据移动到localizedfield容器的英语中

假设我有一个包含以下字段的类“测试”:

  • 名称(文本)
  • 描述(文本区)
  • 类型(文本)
  • 类别(对象)
让我们假设现在我想本地化以下3个领域的英语,法语和德语

  • 名称(文本)
  • 描述(文本区)
  • 类别(对象)
但我不希望我现有的数据丢失,相反,我希望本地化领域的英语被现有的数据填满


提前感谢。

不幸的是,这并不完全直接。在最简单的情况下,您应该编写两个简单的脚本

遵循以下工作流程:

  • 复制三个字段,例如NameTemp、DescTemp和CategoryTemp
  • 创建一个脚本,将数据从Name复制到NameTemp,从Desc 将临时和类别描述到CategoryTemp
复制后,请执行以下操作:

  • 将字段名称、描述、类别移动到本地化字段-(您的数据为 仍保留在NameTemp、DescTemp和CategoryTemp中)
  • 现在创建一个新脚本,将数据从NameTemp复制到Name,从DescTemp复制到Desc,从CategoryTemp复制到Category
示例脚本(未测试):

//首先运行copyValueFromFieldsToTempFieldsAction(),
//然后将字段移动到本地化字段中,
//然后运行copyValueFromTempFieldsToFieldsAction()
//最后删除临时字段
公共函数copyValueFromFieldsToTempFieldsAction(){
$this->disableViewAutoRender();
$objectList=new\Pimcore\Model\YourObject\Listing();
//$object\u list->setObjectTypes(数组(object\u抽象::object\u类型变量));
/*@var$object object_PrdktResetkeNaZalogi*/
foreach($objectList作为$object){
$object->setNameTemp($object->getName());
$object->setDescTemp($object->getTemp());
$object->setCategoryTemp($object->getCategory());
$object->save();
}
}
公共函数copyValueFromTempFieldsToFieldsAction(){
$this->disableViewAutoRender();
$objectList=new\Pimcore\Model\YourObject\Listing();
//$object\u list->setObjectTypes(数组(object\u抽象::object\u类型变量));
/*@var$object object_PrdktResetkeNaZalogi*/
foreach($objectList作为$object){
$object->settmp($object->getnametep());
$object->setDesc($object->getTemp());
$object->setCategory($object->getCategorTemp());
$object->save();
}
}