如何使用字段 API 设置字段值


How do I set a field value with the field API?

我正在使用Drupal 7字段API,这看起来很棒:我可以为"用户"实体类型添加一个自定义字段,并在GUI中进行编辑。

我使用 field_get_items($entity_type, $entity, $field) 来获取自定义字段值。

我现在需要以编程方式设置自定义字段的值。

我该怎么做?我在Drupal API文档中的任何地方都找不到field_set_items()函数调用。

没有用于设置字段值的函数。通常,您可以使用以下代码设置字段的值。

$entity->$fieldname[$language][$delta] = $value;

每个字段的变化是您传入的数组 $value .例如,节点的 body 字段使用以下结构。

array(
  'value' => 'Empty text. Revision 3.',
  'summary' => '',
  'format' => 'full_html',
  'safe_value' => '<p>Empty text. Revision 3.</p>',
  'safe_summary' => '',
);

用于分类学术语的结构如下。

array(
  'tid' => 4,
);

$delta 是一个通常为 0 的值,但对于具有多个值的字段,它可以具有任何值,只要它不高于它可以获得的最大值数(可以在用户界面中为特定字段设置)。
$language是语言 ID,也可以设置为 LANGUAGE_NONE