如何在Drupal 8中以编程方式更新或创建段落字段
在Drupal 8中通过编程方式更新或创建段落字段
更新现有段落字段
要更新已存在的段落字段,流程很直观:先加载目标段落实体,修改对应字段的值后保存即可。这里给你一个实际可用的代码示例:
// 目标段落的ID $target_id = 62; // 加载段落实体 $paragraph = Paragraph::load($target_id); // (可选)如果需要先读取原有字段值可以这么做 $typeform_field = $paragraph->field_archtics_field->value; $archtics_field = $paragraph->field_archtics_label->value; // 设置新的字段值 $paragraph->set('field_fieldname1', 'TEST1'); $paragraph->set('field_fieldname2', 'TEST2'); // 保存修改 $paragraph->save();
创建段落并关联到节点
如果要新建段落并把它关联到某个节点上,可以按照以下步骤操作:
- 先创建段落实体,设置好字段值并保存
- 加载目标节点,将新建的段落关联到节点的段落字段中
- 保存节点完成关联
示例代码如下:
// 1. 创建新的段落实体 $paragraph = Paragraph::create([ 'type' => 'your_paragraph_type_machine_name', // 替换为你的段落类型机器名 'field_fieldname1' => 'TEST_NEW_1', 'field_fieldname2' => 'TEST_NEW_2', ]); $paragraph->save(); // 2. 加载目标节点(假设节点ID是123) $node = Node::load(123); // 3. 将段落关联到节点的段落字段(替换为你的节点段落字段机器名) $node->set('field_node_paragraph_field', [ 'target_id' => $paragraph->id(), 'target_revision_id' => $paragraph->getRevisionId(), ]); // 保存节点 $node->save();
内容的提问来源于stack exchange,提问作者Debraj nayak
相关产品推荐
相关产品推荐

