如何使用Datadefinition :: Create('list')? -- 8 领域 和 entities 领域 drupal 相关 的问题

How to use DataDefinition::create('list')?


2
vote

问题

中文

答案链接到a 所有可能使用的所有类型的列表 DataDefinition::create()

可以使用的一个插件是 itemlist 。

但我找不到有关如何定义列表中的项目的任何文档。

我会期待这样的东西:

  $status_definition = DataDefinition::create('list')   ->setLabel(new TranslatableMarkup('Status'))   ->setRequired(TRUE)   ->setListItems([     1 => 'One',     2 => 'Two',     3 => 'Three',   ]);   

但方法SetListItems(或类似)不存在。

对于更多上下文,我遵循关于如何扩展实体参考字段类型的文章,而不是添加一个我想要添加列表字段的整数字段。

英文原文

This answer links to a list of all possible types that can be used with DataDefinition::create().

One plugin that can be used is ItemList.

But I can't find any documentation on how to define what items are on the list.

I would have expected something like this:

$status_definition = DataDefinition::create('list')   ->setLabel(new TranslatableMarkup('Status'))   ->setRequired(TRUE)   ->setListItems([     1 => 'One',     2 => 'Two',     3 => 'Three',   ]); 

But the method setListItems (or anything similar) does not exist.

For some more context I'm following this article on how to extend the entity reference field type but instead of adding an integer field I want to add a list field.

     

回答列表

1
 
vote

ItemList 是一个通用基类。 列表在此处使用多值现场项目的上下文。由于Drupal为单个值字段没有单独的类(它们是多值的字段限制为一个值),所以此通用列表数据类型在所有Drupal字段中使用。

当您查看字段类型列表

https://api.drupal.org/api/drupal/core%21lib%21drupal%21core%21field%21annotation%21fieldtype.php/class/annotations/fieldtype/8.4.x

你会发现 liststringItem ,其中列表在您可能正在寻找的上下文中使用,您可以用它作为实现这种字段类型的示例<一个href ="https://api.drupal.org/api/drupal/core%21lib%21drupal%21core%21drydata%21optionsproviderInterface.php/interface/optionsproviderface/8.4.x" rel ="nofollow noreferrer" > OptionsProviderInterface 。

 

ItemList is a generic base class. List is used here in the context of multivalued field items. Because Drupal has no separate class for single value fields (they are multivalued fields restricted to one value), this generic list data type is used in all Drupal fields.

When you look at the list of field types

https://api.drupal.org/api/drupal/core%21lib%21Drupal%21Core%21Field%21Annotation%21FieldType.php/class/annotations/FieldType/8.4.x

you'll find ListStringItem, where List is used in the context you are probably looking for and you can use this as an example for this kind of field types implementing OptionsProviderInterface.

 
 

相关问题

1  如何更改“发布状态”复选框的标签和帮助文本?  ( How do i change the label and help text of the publishing status checkbox ) 
我们最近将我们的网站更新为Drupal 8.4,并且发布节点的小部件已从下拉列表中更改为复选框。现在,如何更改标签和复选框的文本?它无法在字段UI中更改。 ...

3  贡献D8版本的现有D7 Controm项目?  ( Contribute d8 version of an existing d7 contrib project ) 
有人可以介绍如何贡献现有D7 Controm项目的D8版本?我维护D7项目,并进一步想要添加它的D8版本。 我正在努力创建8.x.1.x开发分支。 请分享以下任何引用或步骤。 我的项目链接:检查dns 。 所以当我创建 C:UsersMyusernameAppDataRoamingComposervendordrus...

4  用CKEDITOR包装锚标记的包装内容  ( Wrapping content in anchor tags with ckeditor ) 
我正在尝试在drupal 8安装中的标记中包装html内容块: <a href="/link"><h2>Link 1</h2><h3>Subheader link 1</h3></a> ckeditor将其更改为至: <h2><a href="/link">Link 1</a></h2><h3><a...

0  如何防止在节点上显示特定段落类型(捆绑包)  ( How to prevent display of specific paragraph types bundles on nodes ) 
我有一个包含段落字段的内容类型,该段落具有可用许多段落类型。对于其中一个段落类型,我不希望它在节点中显示它,因为我在使用不同区域中的视图显示它。视图工作很大,但我无法弄清楚如何防止特定段落类型在节点上显示。我尝试使用各种钩子从渲染阵列中删除.Theme,但这也从视图中删除它。我还尝试从节点模板中的段落字段中删除段落类...

0  如何从页面标题中删除“drupal”?  ( How to remove drupal from title of page ) 
现在我有这个: 在这里,我发现了如何将此文本更改为其他文本: https: //www.drupal.org/forum/support/post-installation/2016-09-20/change-site-title-in-drupal-8 我试过: 但它没有帮助。 drupal是8...

3  从段落中引用块插件或表单?  ( Reference a block plugin or form from a paragraph ) 
是否有一种方法来引用自定义表单(用Form API构建)或一个块插件,该插件呈现相同的形式?我只看到了一种方法来引用自定义块(内容)或配置块,而不是两者。如何解决这一场景? ...

0  以节点上的以编程方式重新排列实体引用列表的顺序  ( Programmatically rearrange order of entity reference list on node ) 
我的内容类型有一个节点参考字段,允许用户输入无限量的节点。我需要以编程方式更改此列表中第一个问题。 使用下面的代码,我能够从字段中获取数据。 $node = Drupal::entityTypeManager()->getStorage('node')->load($function); $focus = $no...

4  从简单的Create-React-App制作JSON API请求时,405方法不允许错误  ( 405 method not allowed error when making a json api request from a simple create ) 
以下请求在从localhost:3000的简单创建 - react-app生成的项目运行时不允许使用405方法。我真的需要这个应用程序来运行域外(解耦)。这感觉非常像一个十字发发的问题,但我发送了 X-CSRF-TOKEN 标题令牌,并且配置了Apache,也可以接受标题。 不知道我做错了什么... Hos...

1  如何理解和修复反射不存在错误?  ( How to understand and fix a reflection does not exist error ) 
我正在尝试使用fasefumscriber来添加http标头。在D7中,我将简单地使用 drupal_add_http_header('Content-Type', 'application/javascript'); 但我认为这现在在d8中推出。我一直在谷歌上狩猎几个小时,似乎我现在需要使用enversu...

-2  如何从8.4.2升级到8.4.3? [关闭]  ( How do i upgrade from 8 4 2 to 8 4 3 ) 
关闭。这个问题需要更多聚焦。它目前不接受答案。 想要改进这个问题?更新问题,因此它仅拍摄了一个问题,只有编辑此帖。 关闭 3年前。 ...

2  显示注释作者电子邮件.html.twig  ( Show comment author e mail in comment html twig ) 
匿名用户发布评论时可以留下他们的电子邮件,但是如何在Comminy.html.twig中将此电子邮件显示为纯文本值? ...

1  邮件主题和身体使用MailManager保持空  ( Mail subject and body remain empty using mailmanager ) 
我已经摆弄了在Drupal 8中的自定义模块中发送邮件。 邮件被发送,但主题和身体是空的。 这是几天的问题,我无法让它工作。代码和var_dump在下面。我只是找不到这个问题。也许有人可以! hook_mail : <?php /** * Implements hook_mail(). */ functi...

2  使用hook_schema()无法将时间戳类型的数据库字段添加到数据库中  ( Database field of timestamp type cannot be added to the database using hook sche ) 
我在drupal 8中创建了一个自定义模块。但在.install文件中有一个for created_date的字段,它有一个timestamp。当我尝试启用该模块时,它会提供以下错误。 exception 'PDOException' with message 'SQLSTATE[42000]: Syntax e...

0  如何在字段中显示(自动)引用此节点的所有介质?  ( How to display automatically in a field all media that references this node ) 
我有一个内容类型,"水果" 。使用该内容类型,我创建了"Bananas" 节点。它包含构成"香蕉信息" 的文本和链接字段。 我有媒体类型,"果实图像" ,带有一个字段,"果仁夏" 。使用该媒体类型我有许多香蕉和其他水果的图像。 在我的水果页面上,如何在一个字段中自动显示 所有图片的Bananas(即媒体类型"果实图像...

1  我应该在Drupal核心文件中设置哪些权限?  ( What permissions should i set in drupal core files ) 
在刷新缓存时,我得到了很长的消息,以开始 警告:unlink(/核心/ lib / drupal / core / files / filesystem.php)。 我从未经历过Drupal 7的消息。它不会阻止网站出现,但我不想保持凌乱的安装。 这是关键吗?我该怎么办? ...

6  我在哪里可以找到自定义实体字段的所有表单显示选项类型?  ( Where can i find all form display options types for custom entity fields ) 
我创建了一个与 drupal generate:entity:content 的自定义实体。 我在实体类的 99887664 方法中添加字段。 下面是默认情况下的drupal控制台为 name 字段生成。 在哪里可以找到所有可能的 type ->setDisplayOptions('form') 的值。例如,下面的...

1  如何基于上下文主题内容类型  ( How to theme content type based on context ) 
我有一篇文章内容类型,其中包含类别(第1项,第2项等) 当在节点编辑上挑选特定类别时,我希望能够使用不同的主题将节点视图为主题。 如何完成?任何类型的解决方案都是可接受的 注意:此时 https://www.drupal.org/project/page_theme, https://www.drupal.org/p...

1  从Page.html.twig模板访问字段  ( Access a field from page html twig template ) 
我想在页眉上方显示一个图像。 图像存储在字段中(其名称是与节点相关的"图像" )(其类型是"文章" )。 我可以使用节点显示{{content.field_image}} - Stretty.html.twig模板。 但作为 <h1 class="page-header">{{ title }}</h1> ...

0  hook_entity_base_field_info()与创建新实体  ( Hook entity base field info vs creating a new entity ) 
我需要创建一个相当广泛的网站的用户/帐户管理部分。 我想知道是否只是扩展现有的用户实体,或者我是否应该创建一个全新的实体来容纳我需要的所有额外的东西... 在做出这个决定时,我应该牢记这个问题吗? ...

0  basefielddefinition setDisplayOptions ...键入='string_textfield'...无法设置默认占位符或大小?  ( Basefielddefinition setdisplayoptions type string textfield unable t ) 
我无法获取默认占位符和/或大小以注册到BaseFieldDefinition。我正在尝试这样的东西: $fields['company_name'] = BaseFieldDefinition::create('string') ->setLabel(t('Company Name')) ...




© 2021 it.wenda123.org All Rights Reserved. 问答之家 版权所有


Licensed under cc by-sa 3.0 with attribution required.