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

标签 php mysql drupal drupal-7

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

最佳答案

在 Drupal 7 中,您有实体和字段;字段附加到实体。节点是实体的实现(节点模块实现了 hook_entity_info() 和其他此类 Hook ),因此它可以具有字段。

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

这些表中的 entity_id 列是节点的 ID,bundle 是节点的内容类型。 revision_id 是节点的修订 ID,同样只有在启用节点修订时才真正有用。

更新

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

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

关于php - Drupal 7 节点 --> 数据库中的字段映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7773025/

相关文章:

django - 如何从 Drupal 对 Django 进行身份验证?

php - 如何在客户端保存 JSON 文件并在以后检索它?

php - Laravel 5 身份验证中间件总是重定向到 root 或登录

mysql - SQL 代码错误

mysql - 有条件选择

drupal - 如何在 Drupal 8 菜单项中添加额外字段。我想添加额外的图像字段

php - 如何在 PHP 中对文件进行数字签名

php - 文本区域来自 mysql 数据库的新行?

java - Hibernate 不会自动创建表

drupal - Drupal 中的语法高亮显示