我需要使用段落將一些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