Drupal 7节点 - >数据库中的字段映射

时间:2011-10-14 20:09:48

标签: php mysql drupal drupal-7

我试图找出节点如何映射回它们包含的字段以用于学习目的。这是怎么做到的?

2 个答案:

答案 0 :(得分:9)

在Drupal 7中你有实体和领域;字段附加到实体。节点是实体的实现(节点模块实现hook_entity_info()和其他此类挂钩),因此它可以包含字段。

所有字段/实体关系数据都存储在表field_data_field_xfield_revision_field_x或类似的表中(如果启用了节点修订,后者可能存储字段数据的修订版。)

这些表中的entity_id列是节点的ID,bundle是节点的内容类型。 revision_id是节点的修订版ID,只有在启用了节点修订版时才非常有用。

<强>更新

在Drupal术语中,内容类型是bundlebundle附加到实体(在本例中为node实体)。当您创建新的内容类型时,它将存储在node_type表中,并且当清除缓存(在所有模块上调用hook_entity_info)时,node_entity_info()函数会构建一个包列表从内容类型(看看该函数中以foreach (node_type_get_names() as $type => $name) {开头的位,node_type_get_names获取所有内容类型的列表。)

如上所述,字段可以附加到实体,因此字段可以附加到具有bundle的delta(如果您愿意)的节点。

答案 1 :(得分:0)

在D7中,对于我来说, field_config_instance 表为我提供了必需的信息。