我通过自定义模块创建了一个实体。这个实体没有任何捆绑包,它创建得非常好。 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行)。
任何帮助都将受到高度赞赏。
答案 0 :(得分:3)
为字段创建实例时,需要确保指定包名称。如果您的实体没有任何捆绑包,则默认情况下会创建一个与您的实体名称相同的捆绑包。这有助于:
'entity_type'=> 'MY_ENTITY', 'bundle'=> 'MY_ENTITY',
可以在我的博客上找到整个工作流程:Use entity reference in your custom entities without bundles