1

カスタム モジュールを介してエンティティを作成しました。このエンティティにはバンドルがなく、完全に正常に作成されます。entity_get_info は、バンドルを持つ必要はないと言います。

次に、field_create_field を使用してエンティティ参照用のフィールドを作成します。これも正常に機能します。ここで、このフィールドをインスタンスとしてカスタム エンティティに関連付けたい場合、field_create_instance (バンドルを指定せずに) を呼び出すと、次のエラーが表示されます。

drupal FieldException: バンドルなしでフィールドのインスタンスを作成しようとしています

bundle が field_config_instance の必須フィールドであることを確認します。エンティティと同じ名前で bundle を指定しようとしましたが、それもうまくいきませんでした。実際、インスタンスは作成されましたが、エンティティの追加/編集フォームで field_attach_form を実行すると、別のエラーが発生します。

Notice: 未定義のインデックス: EntityReferenceHandler_base->buildEntityFieldQuery() の target_bundles (/Applications/MAMP/htdocs/MYPROJECT/sites/all/modules/entityreference/handler/base.inc の 174 行目)。

どんな助けでも大歓迎です。

4

1 に答える 1

3

フィールドのインスタンスを作成するときは、必ずバンドル名を指定する必要があります。エンティティのバンドルがない場合、デフォルトでは、エンティティと同じ名前で単一のバンドルが作成されます。これが助けになりました:

'entity_type' =>'MY_ENTITY'、'バンドル'=>'MY_ENTITY'、

ワークフロー全体は私のブログでアクセスできます:バンドルなしでカスタムエンティティでエンティティ参照を使用する

于 2011-12-08T08:43:33.020 に答える