我有一个在pimcore 3上开发的现有项目。我正在面对一个挑战,同时本地化一个类的现有字段,就像将一个字段移动到本地化字段容器意味着使用这个字段丢失所有对象中的字段类。我不想丢失这些数据,而是希望将数据移动到该本地化容器的英语语言。
让我们说我有一个班级"考试"以下字段:
现在让我们说想要将3个字段本地化为英语,法语和德语。
但我不希望丢失现有数据,而是希望用本地化的字段填写现有数据。
提前致谢。
答案 0 :(得分:2)
不幸的是,这并非完全直截了当。在最简单的情况下,您应该编写两个简单的脚本。
请遵循以下工作流程:
复制后执行此操作:
示例脚本(未测试):
// First run copyValueFromFieldsToTempFieldsAction(),
// then move the fields into localized field,
// afterwards run copyValueFromTempFieldsToFieldsAction()
// in the end remove temp fields
public function copyValueFromFieldsToTempFieldsAction(){
$this->disableViewAutoRender();
$objectList = new \Pimcore\Model\YourObject\Listing();
//$object_list->setObjectTypes(array(Object_Abstract::OBJECT_TYPE_VARIANT));
/* @var $object Object_PrdktResetkeNaZalogi */
foreach($objectList as $object){
$object->setNameTemp($object->getName());
$object->setDescTemp($object->getTemp());
$object->setCategoryTemp($object->getCategory());
$object->save();
}
}
public function copyValueFromTempFieldsToFieldsAction(){
$this->disableViewAutoRender();
$objectList = new \Pimcore\Model\YourObject\Listing();
//$object_list->setObjectTypes(array(Object_Abstract::OBJECT_TYPE_VARIANT));
/* @var $object Object_PrdktResetkeNaZalogi */
foreach($objectList as $object){
$object->setTemp($object->getNameTemp());
$object->setDesc($object->getTemp());
$object->setCategory($object->getCategorTemp());
$object->save();
}
}