В 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',
Весь рабочий процесс доступен в моем блоге: используйте ссылки на сущности в ваших пользовательских сущностях без пакетов