質問: プログラムでフィールドを作成する方法は? drupal 7に以下を実装する方法を教えてください。私がする必要があるのは、「company」という新しいフィールド化可能なエンティティを定義するモジュールを作成することです。たとえば、各companyインスタンスで入力する必要がある20のフィールドのリストがあります。これらの質問は事前定義されており、一部にはカスタム検証が含まれる場合があります。現在、私はcompanyエンティティに新しいフィールドを追加できる段階にあります。これは現時点では正常に機能します。私の問題は、モジュールがインストールされるとすぐにこれらすべてのフィールドが存在する必要があるため、インターフェースを介してフィールドを追加することはできません。私はこれにどのように取り組むことができるのかと思っていましたか?プログラムで「フィールドの管理」uiを使用して実行できることを実行できるようになったことが原因だと思います。
回答: field_create_field() を使用してフィールド自体を作成し、 field_create_instance() を使用して特定のエンティティバンドルのインスタンスを作成します。カスタムモジュールの一部としてフィールドを作成する場合、モジュールがアンインストールされたときにフィールドを削除したい場合としない場合があります。これを行うには、フィールドとすべてのフィールドインスタンスを削除する場合は field_delete_field() を使用できます。特定のインスタンスを削除する場合は field_delete_instance() を使用できます。 。