Как программно создать элемент абзацев?
Как создать пункты элемент программно?
В Drupal 7 я использую следующий код.
$node = node_load($nid);
$paragraph = new ParagraphsItemEntity(array('field_name' => 'field_name', 'bundle' => 'para_bundlename'));
$paragraph->is_new = TRUE;
$paragraph->field_ptest1['und'][0]['value'] = 'Foo';
$paragraph->setHostEntity('node', $node);
$paragraph->save();
node_save($node);
Но это не работает?
2
Author: visabhishek, 2016-01-27
3 answers
Да, это было для добавления значения в существующий пункт пункта. Если вы хотите создать новый элемент абзаца с новым значением, попробуйте использовать этот код.
$node = node_load(...);
$paragraph = new ParagraphsItemEntity(array('field_name' => 'name_of_field_in_node', 'bundle' => 'name_of_paragraph_bundle'));
$paragraph->is_new = TRUE;
$paragraph->setHostEntity('node', $node);
$paragraph->field1_name_in_paragraph_bundle[LANGUAGE_NONE][0]['value'] = 'Test Data';
$paragraph->field2_name_in_paragraph_bundle[LANGUAGE_NONE][0]['value'] = 'Test Data';
$paragraph->save();
3
Author: Sri Harsha, 2016-01-28 06:16:10
Я также столкнулся с аналогичной проблемой, вот как я заставил ее работать, надеюсь, это поможет.
Я заставил его работать с помощью entity_metadata_wrapper.
$raw_node = node_load($nid);
// Wrap it with Entity API
$node = entity_metadata_wrapper('node', $raw_node);
$raw_collection = $node->paragraph_field_name->value();
$collection = entity_metadata_wrapper('paragraphs_item', $raw_collection);
$collection->field_paragraph_item1 = "hurray";
$collection->save();
1
Author: Sri Harsha, 2016-01-27 14:34:58
Это код, используемый в различных местах для создания сущности в Drupal 7
$node = node_load(...);
$paragraph = new ParagraphsItemEntity(array('field_name' => 'name_of_field_in_node', 'bundle' => 'name_of_paragraph_bundle'));
$paragraph->is_new = TRUE;
$paragraph->setHostEntity('node', $node);
$paragraph->save();
Модуль сбора полей, использующий вместо этого следующий метод
$node = node_load(...);
$entity = entity_create('paragraphs_item', array('field_name' => 'name_of_field_in_node', 'bundle' => 'name_of_paragraph_bundle'));
$entity->setHostEntity('node', $node);
$entity->save();
Оба должны работать нормально. Ваш код мне нравится, просто удалите последнюю строку.
0
Author: Shabir A., 2016-01-27 13:46:41