首页 > 解决方案 > 我可以将 entity_reference 的基数设置为配置实体吗?

问题描述

我通过 hook_entity_base_field_info 以编程方式创建了一个 entity_reference(到配置实体)字段(参见下面的代码)。

一切正常,直到我尝试定义它的基数。一旦我添加了这个,我就会收到致命错误,因为 Drupal 找不到数据库表 user__foo。

  $fields['foo'] = BaseFieldDefinition::create('entity_reference')
    ->setLabel(t('Foo field'))
    ->setDescription(t('Foo bar field'))
    ->setSetting('target_type', 'my_config_entity')
    ->setSetting('handler', 'default')
    //    ->setCardinality(\Drupal\Core\Field\FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED)
    ->setDisplayOptions('view', [
      'label' => 'hidden',
      'type' => 'entity_reference_label',
      'weight' => 6,
    ])
    ->setDisplayOptions('form', [
      'type' => 'options_buttons',
      'weight' => 7,
    ]);

标签: drupaldrupal-8

解决方案


仅供参考,在未注释基数的情况下进行全新安装时,一切正常,因此可能需要为现有站点编写更新挂钩来为这个新字段安装存储(之前由 drush entity-update 完成)。


推荐阅读