在Drupal中,是否有可能将字段与没有包的实体相关联?

时间:2011-12-07 14:45:24

标签: drupal drupal-7 drupal-fields

我通过自定义模块创建了一个实体。这个实体没有任何捆绑包,它创建得非常好。 entity_get_info表示没有必要捆绑。

接下来,我使用field_create_field为实体引用创建一个字段,它也可以正常工作。现在,当我想将这个字段作为实例关联到我的自定义实体时,当我调用field_create_instance(没有指定bundle)时,我得到的错误是:

  

drupal FieldException:尝试创建没有包

的字段实例

我继续看到bundle是field_config_instance中的必填字段。我试图将bundle指定为与实体相同的名称,但这对我来说也不起作用。实际上,它确实创建了一个实例,但是当我执行field_attach_form时,在实体添加/编辑表单上,我得到另一个错误:

  

注意:未定义的索引:EntityReferenceHandler_base-> buildEntityFieldQuery()中的target_bundles(/Applications/MAMP/htdocs/MYPROJECT/sites/all/modules/entityreference/handler/base.inc的第174行)。

任何帮助都将受到高度赞赏。

1 个答案:

答案 0 :(得分:3)

为字段创建实例时,需要确保指定包名称。如果您的实体没有任何捆绑包,则默认情况下会创建一个与您的实体名称相同的捆绑包。这有助于:

'entity_type'=> 'MY_ENTITY', 'bundle'=> 'MY_ENTITY',

可以在我的博客上找到整个工作流程:Use entity reference in your custom entities without bundles