【问题标题】:Drupal 8: Mismatched entity and/or field definitionsDrupal 8:不匹配的实体和/或字段定义
【发布时间】:2016-05-13 15:52:47
【问题描述】:

在试图了解为什么我的视图没有显示时,我注意到日志中出现以下错误:

我认为无法从分类术语中删除 URL 别名。至少我找不到如何做到这一点。 但是,我已经浏览了所有分类术语并删除了该字段的值。

我还使用 Pathauto 完成了以下操作:

另外,我检查了位于 admin/reports/fields 的报告,可以确认没有实体使用名为 URL 别名的字段。

我浏览了每个内容项并确保它们具有以下设置(有人知道如何批量执行此操作吗?)。但错误仍然存​​在。

那么有谁知道我该如何解决这个奇怪的错误?

【问题讨论】:

    标签: drupal drupal-views pathauto


    【解决方案1】:

    我不完全确定这个命令的作用,但它修复了错误:

    drush updb --entity-updates
    

    【讨论】:

      【解决方案2】:

      https://www.drupal.org/node/2554097 开始,Drupal 核心中负责更新实体定义的魔法消失了。 drush updb --entiy-updates 是一个替代方案,但它不是灵丹妙药。相反,编写数据库更新更安全。

      以顶部的屏幕截图为例,这里是一个数据库更新,它将删除这两个字段定义:

      /**
       * Fix taxonomy and node field definitions.
       *
       */
      function mymodule_update_8101() {
        $manager = \Drupal::entityDefinitionUpdateManager();
      
        if ($field = $manager->getFieldStorageDefinition('alias', 'node')) {
          $manager->uninstallFieldStorageDefinition($field);
        }
      
        if ($field = $manager->getFieldStorageDefinition('alias', 'term')) {
          $manager->uninstallFieldStorageDefinition($field);
        }
      }
      

      查看https://www.drupal.org/node/2554097 的其余可用方法,以便为每个场景编写数据库更新。

      【讨论】:

        【解决方案3】:

        使用 entity_update 模块或 devel_entity_updates 模块

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-04-09
          • 2021-12-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-06-21
          • 1970-01-01
          相关资源
          最近更新 更多