use*_*454 5 drupal-8 drupal-fields drupal-nodes
我想以编程方式创建自定义内容(通过管理UI创建的自定义内容).但是,在创建之前,我想以编程方式检查自定义内容的字段类型
我的自定义内容包含字段"body"(类型文本),字段"description"(类型文本),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.
Run Code Online (Sandbox Code Playgroud)
使用此$ entity_object,如何获取自定义内容的字段列表?我看到了EntityFieldManager类,FieldItemList类......但我仍然不明白如何玩drupal 8/class/poo ...:/
谢谢 !
NodeType是节点(内容)实体的(config)捆绑实体.
正确的电话会是:
\Drupal::service('entity_field.manager')->getFieldDefinitions('node', 'my_custom_content');
Run Code Online (Sandbox Code Playgroud)
要获取任何entity_type的字段定义,请使用以下结构:
\Drupal::service('entity_field.manager')->getFieldDefinitions(ENTITY_TYPE_ID, BUNDLE_ID);
Run Code Online (Sandbox Code Playgroud)
例如,如果要获取具有id multy_purpose_link的段落包的所有字段定义,则将ENTITY_TYPE_ID替换为段落,将BUNDLE_ID替换为multy_purpose_link
\Drupal::service('entity_field.manager')->getFieldDefinitions('paragraph', 'multy_purpose_link');
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11284 次 |
最近记录: |