我通过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,
]);
答案 0 :(得分:0)
FYI,在未注释基数的情况下进行全新安装时,一切正常,因此,可能需要编写一个用于现有站点的更新挂钩,以为该新字段安装存储(之前由drush实体更新完成)。