Drupal7-如何以编程方式更新字段值
时间:2020-03-05 15:25:33 来源:igfitidea点击:
通常,我们可以使用node_save保存新节点或者更改现有节点,然后保存更改。
因为这里的主题是关于以编程方式更新字段值的,所以让我们看一个示例,而不是深入讨论node_save。
<?php $node = node_load($nid); $node->fieldname['und'][0]['value'] = 'field value'; node_save($node); ?>
使用node_save是个好主意,但是当我们想为content type的所有内容更新一个字段值时,最好再考虑一下。
考虑这样一种情况,站点管理员在更改节点内容时会收到通知,并且站点中有大约1000个节点,那么对于站点管理员来说是很麻烦的。
在这种情况下,最好是去一些较轻的替代和外地添加更新来拯救我们。
字段\添加\更新保存现有实体的字段数据。
它保存字段数据值而不是整个节点,这样可以节省大量时间。
请查看下面API函数的语法:
field_attach_update($entity_type, $entity);
其中,"$entity_type"可以是"node"、"user"、"comment",而"$entity"应该是具有字段值的实体。
让我们看一个为特定内容类型更新单个字段值的示例:
$article_nodes = node_load_multiple(array(), array('type' => 'article')); foreach ($article_nodes as $article_node) { $article_node->body[LANGUAGE_NONE][0]['value'] = 'body value'; field_attach_update('node', $article_node); }
在上面的示例中,我们加载所有"article"节点并更改body字段值。
注意:
在实体保存操作外部调用此函数时,请确保清除实体的缓存。