首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何更改带有修订的自定义实体字段类型

问如何更改带有修订的自定义实体字段类型
EN

Drupal用户
提问于 2022-06-27 14:32:20
回答 1查看 250关注 0票数 0

我有一个自定义的内容实体,为此我需要更改它的一个字段的类型。

按照更新基字段类型上的示例,我编写了更新基本实体的代码,基本实体更新得很完美。但是,所有修订都有空值,包括当前的修订。尽管数据存储在base_entity表中,但它没有存储在base_entity_revision表中。

如何修改hook_update_N()以同时更新修订表?

EN

回答 1

Drupal用户

回答已采纳

发布于 2022-06-27 14:32:20

除了更新主表外,还需要更新修订表,因此应该进行以下更改:

  1. $id_key = $entity_definition->getKey('id');变成$id_key = $entity_definition->getKey('id'); $revision_id_key = $entity_definition->getKey('revision');
  2. $table_name = $storage->getDataTable() ?: $storage->getBaseTable();变成$table_name = $storage->getDataTable() ?: $storage->getBaseTable(); $revision_table_name = $storage->getRevisionDataTable() ?: $storage->getRevisionTable();
  3. $status_values = $database->select($table_name) ->fields($table_name, [$id_key, 'status_field']) ->execute() ->fetchAllKeyed();变成$status_values = $database->select($table_name) ->fields($table_name, [$id_key, 'status_field']) ->execute() ->fetchAllKeyed(); $status_revision_values = $database->select($revision_table_name) ->fields($revision_table_name, [$revision_id_key, 'status_field']) ->execute() ->fetchAllKeyed();
  4. $database->update($table_name) ->fields(['status_field' => NULL]) ->execute();变成$database->update($table_name) ->fields(['status_field' => NULL]) ->execute(); $database->update($revision_table_name) ->fields(['status_field' => NULL]) ->execute();
  5. foreach ($status_values as $id => $value) { $database->update($table_name) ->fields(['status_field' => $value]) ->condition($id_key, $id) ->execute(); }变成foreach ($status_values as $id => $value) { $database->update($table_name) ->fields(['status_field' => $value]) ->condition($id_key, $id) ->execute(); } foreach ($status_revision_values as $id => $value) { $database->update($revision_table_name) ->fields(['status_field' => $value]) ->condition($revision_id_key, $id) ->execute(); }
票数 1
EN
页面原文内容由Drupal提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://drupal.stackexchange.com/questions/311803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档