В Drupal, нельзя ли иметь поля, связанные с сущностями, у которых нет пакетов?

Я создал сущность через пользовательский модуль. У этой сущности нет связки, и она прекрасно создается. entity_get_info говорит, что нет необходимости иметь пакеты.

Затем я создаю поле для ссылки на сущность, используя field_create_field, и это тоже отлично работает. Теперь, когда я хочу связать это поле как экземпляр с моей настраиваемой сущностью и когда я вызываю field_create_instance (без указания bundle), я получаю сообщение об ошибке:

drupal FieldException: попытка создать экземпляр поля без пакета

Я продолжаю видеть, что bundle является обязательным полем в field_config_instance.. Я попытался указать bundle как то же имя, что и для объекта, но это также не сработало для меня. На самом деле, он создал экземпляр, но в форме добавления / редактирования сущности, когда я делаю field_attach_form, я получаю еще одну ошибку:

Примечание: неопределенный индекс: target_bundles в EntityReferenceHandler_base->buildEntityFieldQuery() (строка 174 из /Applications/MAMP/htdocs/MYPROJECT/sites/all/modules/entityreference/handler/base.inc).

Любая помощь будет высоко оценена.

1 ответ

При создании экземпляра для вашего поля вы должны убедиться, что вы указали имя пакета. Если у вас нет каких-либо пакетов для вашей сущности, по умолчанию создается один пакет с тем же именем, что и у вашей сущности. Вот что помогло:

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

Весь рабочий процесс доступен в моем блоге: используйте ссылки на сущности в ваших пользовательских сущностях без пакетов

Другие вопросы по тегам