我需要使用段落将一些Drupal 6实例中的自定义字段数据导入到Drupal 8实例中。由于D8将所有翻译存储在单个节点而不是单独的链接节点(如D6)中,因此尝试将翻译的内容转换为段落并插入节点(页面)时出现问题。默认语言(英文)可正常工作。这里是我的代码(我从是从D6实例转储一个JSON文件导入):Drupal 8 Issue导入段落
... Code to read JSON file here and load into $data variable ...
// create paragraph ($fields is an array of fields from the JSON file)
$paragraph = Paragraph::create($fields);
// load existing node
$node = Node::load($nodeId);
// Get the translated node...according to the docs, this should
// return a node that behaves just like the original node
$language = \Drupal::languageManager()->getLanguage($data['language'])->getId();
$node = $node->getTranslation($language);
$paragraphs = $node->field_paragraph_group;
$paragraphs[] = $paragraph;
$node->field_paragraph_group = $paragraphs;
$node->save();
这似乎保存好,但一旦这样经营的网站时停止工作
The website encountered an unexpected error. Please try again later.
所以它显然打破了一些东西。
我不知道如果我需要尝试从节点访问翻译或添加翻译段落对象,像:
$paragraph->language = $data['language'];
任何指导,将不胜感激!谢谢!
在迁移中使用自定义代码是否有原因? – VJamie
根据主要开发人员的说法,迁移不会像弹性域数据转换为段落那样工作。 – lerxstrulz