基本的に、プログラムでノードを生成しています。これらのノードには、次のようないくつかの注釈付きの段落があります。
-title parent
-body parent
-links parent
-title child
-body child
-links child
-another parent
..etc..
私は段落でこれを行っています、私には別のものを含む親段落があります。ノードを生成するときに、次のコードで親段落を十分な方法で生成しています:( 'field_contenido_padre'は親段落を含むフィールドです)
$paragraph = new ParagraphsItemEntity(
array(
'field_name' => 'field_contenido_padre',
'bundle' => 'acordeon'));
$paragraph->is_new = TRUE;
$paragraph->setHostEntity('node', $parent);
$paragraph->field_titulo_acordeon[LANGUAGE_NONE][0]['value'] = $value["title"];
$paragraph->field_body[LANGUAGE_NONE][0]['value'] = "jajaja";
$ia = 0;
foreach ($value["items"] as $k => $item){
$paragraph->field_link_archivo[LANGUAGE_NONE][$ia]['title'] = $item;
$paragraph->field_link_archivo[LANGUAGE_NONE][$ia]['url'] = $value["items"][((int) $k + 1)];
}
$paragraph->save();
OK。これは機能します。ここからさらに先が私の問題です。次に、この最近生成された親段落に子段落を添付したいと思います。私は成功せずに次のことを試しました:
$paragraph = new ParagraphsItemEntity( array( 'field_name' => 'field_acordeon_hijo', 'bundle' => 'acordeon-hijo')); $paragraph->is_new = TRUE; $paragraph->setHostEntity('paragraphs_item', $parent); $paragraph->field_titulo_acordeon_hijo[LANGUAGE_NONE][0]['value'] ='TITULAko Hijo'; $paragraph->body[LANGUAGE_NONE][0]['value'] = 'jajaja'; $paragraph->save();
次に、最近の子を親のオブジェクトフィールドに保存します。
$entity = entity_load('paragraphs_item', array($parent->item_id));
$entity = reset($entity);
$entity->field_acordeon_hijo[LANGUAGE_NONE] = array(
0 => array(
'value' => $id_child,
'safe_value' => $id_child,
'format ' => NULL));
$entity->revision = TRUE;
$entity->save(FALSE);
エラーは発生しませんが、親段落は正常に生成されますが、子段落が表示されません:-/
子を親に接続しているためだと思いますが、ノードに接続する必要があるかもしれません。しかしその場合、どのように子供を親に向けるか?
2日後、ようやく動作しました。手順3は必要ありません。私のエラーはステップ2で、バンドル名を間違って書いた:ので、
new ParagraphsItemEntity(
array(
'field_name' => 'field_acordeon_hijo',
'bundle' => 'acordeon_hijo'))
---(acordeon_hijoの下線に注意してください