Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Drupal 默认情况下,通过配置导入的字段处于禁用状态。如何启用它们?_Drupal_Drupal 8 - Fatal编程技术网

Drupal 默认情况下,通过配置导入的字段处于禁用状态。如何启用它们?

Drupal 默认情况下,通过配置导入的字段处于禁用状态。如何启用它们?,drupal,drupal-8,Drupal,Drupal 8,在Drupal8的自定义模块中,我可以添加一个新的内容类型及其所有字段,但默认情况下所有字段都被禁用。如何在安装模块期间启用它们 编辑要清除,默认情况下,“管理表单显示”下不启用模块字段。如何使用hook install之类的工具启用(或禁用)字段 编辑2默认情况下,除了在新创建的内容类型中启用字段外,安装此模块还会更新现有内容类型(文章)中的字段,并且这些字段也会被禁用 编辑3禁用意味着它们在内容类型的表单显示上显示为禁用,用户在添加内容时无法看到字段 必须有一些代码可以通过hook\u in

在Drupal8的自定义模块中,我可以添加一个新的内容类型及其所有字段,但默认情况下所有字段都被禁用。如何在安装模块期间启用它们

编辑要清除,默认情况下,“管理表单显示”下不启用模块字段。如何使用hook install之类的工具启用(或禁用)字段

编辑2默认情况下,除了在新创建的内容类型中启用字段外,安装此模块还会更新现有内容类型(文章)中的字段,并且这些字段也会被禁用

编辑3禁用意味着它们在内容类型的表单显示上显示为禁用,用户在添加内容时无法看到字段


必须有一些代码可以通过hook\u install运行,这些代码在内容类型上启用了字段?

我对Drupal 8不太了解,但当我尝试创建自定义内容类型以使用本文时

然后,当我启用自定义模块时,内容类型被成功创建,并且内容类型字段也被启用

此外,我还尝试创建此内容类型的节点,然后成功创建该节点

所以请检查这篇文章

这可能对你有帮助

谢谢,

我认为“禁用”意味着在创建内容类型的实例时字段不会显示

就我个人而言,我一直在使用UI设置如何通过为每种内容类型提供的“管理显示”页面显示我的每个字段。我会像往常一样从禁用部分拖动要启用的字段

当我对字段的排列方式感到满意时,我会使用出色的内置导出功能(考虑Drupal 7中的功能,但更好)为我的内容类型生成.yml配置文件

Drupal网站上精彩地描述了这个过程。在本例中,由于它只是要显示哪些字段的配置,因此它应该像将内容类型的“实体视图显示”配置导出到.yml文件一样简单。(请注意,您需要正确命名yml文件,本文对此进行了解释(我认为导出模块提供了自动生成的名称)

以下是我的一种内容类型的导出外观:

一旦生成了要在启用模块时应用于Drupal的配置文件,就非常简单,只需在模块的根目录中创建两个目录:

“/config/install”

并将配置文件放入安装目录

现在,当第一次安装模块时,Drupal将应用由/config/install目录中的文件提供的配置


此处详述了此过程:

导出字段时,也必须导出:

  • “字段声明”
    Field.Field.[entity\u type].[bundle].[Field\u name].yml
    file不要忘记添加重复使用的字段声明

  • “字段存储”
    Field.Storage.[实体类型].[字段名称].yml
    文件

  • “表单显示”,其中修改了字段配置
    core.entity\u form\u display.[entity\u type].[budle].default.yml

  • “管理显示”,其中您修改了字段配置<代码>核心.entity\u view\u display.[entity\u type].[budle].[view\u mode\u id].yml文件(如果有默认、摘要等)

  • “实体”,如果实体是新的。[实体类型].[类型|段落类型|词汇].[bundle].ymlfile

    我建议您使用“
    drushcex/cim
    ”命令导入和导出配置


这是非常有用的信息,谢谢,但似乎无法使用配置启用现有内容类型上的字段。你能解释一下如何通过hook_install使用代码启用字段吗?我相信这个线程可能对你有用:我还没有测试答案,但它似乎遵循了最佳实践。答案中提供的代码应该只需要一些修改,以适合您的用例(即将实体类型名称更改为您的名称和字段名称。或者,您可以删除您的内容类型并重新安装模块?我将在开始工作时尝试该答案提供的解决方案,因为我以前不必这样做:)下面是这个答案的片段,我想这正是你想要的:
\Drupal::entityTypeManager()->getStorage('entity\u view\u display')->load('user.user.default')->setComponent('field\u birthdate\u pixelpin',['type'=>'string','label'=>'over','settings'=>['link\u to\u entity'=>'false'],])->save()禁用是什么意思?