drupal - 我可以将 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,
]);
解决方案
仅供参考,在未注释基数的情况下进行全新安装时,一切正常,因此可能需要为现有站点编写更新挂钩来为这个新字段安装存储(之前由 drush entity-update 完成)。
推荐阅读
- gulp - 如何使用 gulp 创建 .tar.bz2 档案?
- amazon-web-services - 即使出现 Glue 作业错误,AWS Glue 工作流也标有“已完成”状态
- amazon-web-services - 如何通过 AWS describe-images API 仅获得快速启动 AMI?
- flutter - 如何在颤振项目的一个屏幕中使用多个 Admob 横幅
- python - 在 VisualStudio 中使用 Cython 生成的代码
- .net - 访问令牌过期时 GraphServiceClient 会发生什么?
- javascript - 如何使用 Javascript 获得慢/重滚动效果?
- vue.js - 在 Ionic Vue 中滚动到底部
- javascript - Angular 6 显示过去 12 个月,选择选项中的年份倒序
- google-bigquery - 访问被拒绝:获取云端硬盘凭据时权限被拒绝