gpt4 book ai didi

drupal-8 - Drupal 8,以编程方式获取自定义内容的字段列表

转载 作者:行者123 更新时间:2023-12-04 13:48:32 26 4
gpt4 key购买 nike

我想以编程方式创建自定义内容(通过管理 UI 创建的自定义内容)。但是,在创建之前,我想以编程方式检查自定义内容的字段类型

我的自定义内容包含一个字段“body”(输入文本)、一个字段“描述”(输入文本)、一个 int 字段(输入 int)、一个附加文件字段(输入 fid ?)...

我用 Drupal 8 的新 api 测试了几种方法,这是我最后一次尝试..

// I get the entity object "my_custom_content"
$entity_object = NodeType::load("my_custom_content");
dpm($entity_object); //Work perfectly


$test = \Drupal::getContainer()->get("entity_field.manager")->getFieldDefinitions("my_custom_content",$entity_object->bundle())
//The \Drupal::getConta... Return an error : The "my_custom_content" entity type does not exist.

使用此 $entity_object,如何获取自定义内容的字段列表?
我看到了 EntityFieldManager 类,FieldItemList 类......但我仍然不明白如何玩 drupal 8/class/poo ... :/

谢谢 !

最佳答案

NodeType 是节点(内容)实体的(配置)捆绑实体。

正确的调用是:

\Drupal::service('entity_field.manager')->getFieldDefinitions('node', 'my_custom_content');

要获取任何 entity_type 的字段定义,请使用以下结构:
\Drupal::service('entity_field.manager')->getFieldDefinitions(ENTITY_TYPE_ID, BUNDLE_ID);

例如,如果您想获取 id 为 multy_purpose_link 的段落包的所有字段定义,则将 ENTITY_TYPE_ID 替换为段落,将 BUNDLE_ID 替换为 multy_purpose_link
\Drupal::service('entity_field.manager')->getFieldDefinitions('paragraph', 'multy_purpose_link');

关于drupal-8 - Drupal 8,以编程方式获取自定义内容的字段列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33928266/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com