我可以将entity_reference的基数设置为配置实体吗?

时间:2019-11-20 08:59:02

标签: drupal drupal-8

我通过hook_entity_base_field_info(请参见下面的代码)以编程方式创建了一个object_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,
    ]);

1 个答案:

答案 0 :(得分:0)

FYI,在未注释基数的情况下进行全新安装时,一切正常,因此,可能需要编写一个用于现有站点的更新挂钩,以为该新字段安装存储(之前由drush实体更新完成)。