Drupal 8 通过模块给自定义内容类型添加图片字段出现依赖报错如何解决
报错原因
- 缺少字段实例配置:Drupal的字段配置分为全局存储配置(
field.storage.*.*)和绑定到指定实体Bundle的实例配置(field.field.*.*.*)两个层级。你仅创建了图片字段的全局存储配置,没有创建将该字段绑定到shop内容类型的实例配置,但表单显示配置中声明了对field.field.node.shop.field_exp_image的依赖,系统找不到对应配置触发报错。 - YAML格式缩进错误:YAML对缩进敏感,你提供的
core.entity_form_display.node.shop.default配置中,field_exp_image的缩进级别和body字段不一致,属于无效格式,会导致配置解析失败。 - 表单控件类型配置错误:表单显示配置中
field_exp_image的type参数需要填写表单控件ID,你填写的是字段类型image,正确的图片字段表单控件ID应为image_image,配置错误也会触发依赖验证失败。
解决步骤
- 在模块的
config/install目录下新增字段实例配置文件field.field.node.shop.field_exp_image.yml,参考内容如下:
langcode: en status: true dependencies: config: - field.storage.node.field_exp_image - node.type.shop module: - image id: node.shop.field_exp_image field_name: field_exp_image entity_type: node bundle: shop label: '展示图片' description: '' required: false translatable: true default_value: { } default_value_callback: '' settings: file_directory: 'shop/images' file_extensions: 'png gif jpg jpeg' max_filesize: '' max_resolution: '' min_resolution: '' alt_field: true alt_field_required: true title_field: false title_field_required: false default_image: uuid: '' alt: '' title: '' width: null height: null field_type: image
- 修正
core.entity_form_display.node.shop.default.yml的格式和配置错误,修正后的参考内容如下:
langcode: en status: true dependencies: config: - field.field.node.shop.body - field.field.node.shop.field_exp_image - node.type.shop module: - text - image - user id: node.shop.default targetEntityType: node bundle: shop mode: default content: body: label: hidden type: text_textarea_with_summary weight: 101 settings: { } third_party_settings: { } field_exp_image: type: image_image settings: progress_indicator: throbber preview_image_style: thumbnail third_party_settings: { } weight: 6 links: weight: 100 hidden: { }
- 卸载之前未安装成功的模块,清空Drupal缓存后重新安装模块即可正常生效。
内容的提问来源于stack exchange,提问作者ArK。
相关产品推荐
相关产品推荐

